{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "007cb85a",
   "metadata": {},
   "source": [
    "### 2.建模"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "aa740489",
   "metadata": {},
   "source": [
    "#### 数据准备"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "df71e579",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from tqdm import tqdm\n",
    "from sklearn.model_selection import cross_val_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "99e8207d",
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_roc_auc(model,test_X,test_label_list):\n",
    "    from sklearn.metrics import roc_curve, auc\n",
    "    import matplotlib.pyplot as plt\n",
    "    predict_pro_list = [i[1] for i in model.predict_proba(test_X)]  # 1代表高\n",
    "    fpr, tpr, thersholds = roc_curve(test_label_list, predict_pro_list, pos_label=1)\n",
    "    roc_auc = auc(fpr, tpr)\n",
    "    plt.plot(fpr, tpr, 'k--', label='ROC (area = {0:.2f})'.format(roc_auc), lw=2)\n",
    " \n",
    "    plt.xlim([-0.05, 1.05])  # 设置x、y轴的上下限，以免和边缘重合，更好的观察图像的整体\n",
    "    plt.ylim([-0.05, 1.05])\n",
    "    plt.xlabel('False Positive Rate')\n",
    "    plt.ylabel('True Positive Rate')  # 可以使用中文，但需要导入一些库即字体\n",
    "    plt.title('ROC Curve')\n",
    "    plt.legend(loc=\"lower right\")\n",
    "    plt.show()\n",
    "    return predict_pro_list, roc_auc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "e7c19efe",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "from sklearn.metrics import precision_recall_fscore_support\n",
    "\n",
    "def eval_model(test_label_list, predict_label_list, className_list):\n",
    "    p, r, f1, s = precision_recall_fscore_support(test_label_list, predict_label_list)\n",
    "    total_p = np.average(p, weights=s)\n",
    "    total_r = np.average(r, weights=s)\n",
    "    total_f1 = np.average(f1, weights=s)\n",
    "    total_s = np.sum(s)\n",
    "    res1 = pd.DataFrame({\n",
    "        u'Label': className_list,\n",
    "        u'Precision': p,\n",
    "        u'Recall': r,\n",
    "        u'F1': f1,\n",
    "        u'Support': s\n",
    "    })\n",
    "    res2 = pd.DataFrame({\n",
    "        u'Label': ['总体'],\n",
    "        u'Precision': [total_p],\n",
    "        u'Recall': [total_r],\n",
    "        u'F1': [total_f1],\n",
    "        u'Support': [total_s]\n",
    "    })\n",
    "    res2.index = [2]\n",
    "    res = pd.concat([res1, res2])\n",
    "    df = res[['Label', 'Precision', 'Recall', 'F1', 'Support']]\n",
    "#     df.to_csv(path)\n",
    "    return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e76dadba",
   "metadata": {},
   "outputs": [],
   "source": [
    "train = pd.read_excel(r'D:\\jupyter\\2023.6博士期间\\2024.2.19XY的work\\数据\\train - 去掉x6-x13.xlsx')\n",
    "test = pd.read_excel(r'D:\\jupyter\\2023.6博士期间\\2024.2.19XY的work\\数据\\test - 去掉x6-x13.xlsx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d935c9e8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train (2942, 14)\n",
      "test (783, 14)\n"
     ]
    }
   ],
   "source": [
    "print('train',train.shape)\n",
    "print('test',test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "7c55ac68",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import LabelEncoder\n",
    "labelEncoder = LabelEncoder()\n",
    "\n",
    "train_y = labelEncoder.fit_transform(train['target'])\n",
    "test_y = labelEncoder.fit_transform(test['target'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "8c2f5120",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_X ,test_X = train.iloc[:,:-1],test.iloc[:,:-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "8bdf100a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2942, 13)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "01110ff2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>X1</th>\n",
       "      <th>X2</th>\n",
       "      <th>X3</th>\n",
       "      <th>X4</th>\n",
       "      <th>X5</th>\n",
       "      <th>X14</th>\n",
       "      <th>X15</th>\n",
       "      <th>X16</th>\n",
       "      <th>X17</th>\n",
       "      <th>X18</th>\n",
       "      <th>X19</th>\n",
       "      <th>X20</th>\n",
       "      <th>X21</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.090870</td>\n",
       "      <td>-0.414352</td>\n",
       "      <td>-0.315186</td>\n",
       "      <td>-0.640501</td>\n",
       "      <td>-0.570438</td>\n",
       "      <td>-0.299418</td>\n",
       "      <td>0.979306</td>\n",
       "      <td>-0.146538</td>\n",
       "      <td>-0.141895</td>\n",
       "      <td>-0.556419</td>\n",
       "      <td>-0.288801</td>\n",
       "      <td>-0.404947</td>\n",
       "      <td>-0.101543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.114564</td>\n",
       "      <td>5.218307</td>\n",
       "      <td>0.179099</td>\n",
       "      <td>-0.066085</td>\n",
       "      <td>-0.570438</td>\n",
       "      <td>1.992031</td>\n",
       "      <td>-0.558939</td>\n",
       "      <td>1.506001</td>\n",
       "      <td>-0.141895</td>\n",
       "      <td>-0.556419</td>\n",
       "      <td>0.526311</td>\n",
       "      <td>1.254308</td>\n",
       "      <td>-0.101543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.176973</td>\n",
       "      <td>-0.414352</td>\n",
       "      <td>-0.315186</td>\n",
       "      <td>0.346217</td>\n",
       "      <td>1.214261</td>\n",
       "      <td>-0.891851</td>\n",
       "      <td>-0.956568</td>\n",
       "      <td>1.518108</td>\n",
       "      <td>-0.141895</td>\n",
       "      <td>1.292904</td>\n",
       "      <td>0.719790</td>\n",
       "      <td>2.445281</td>\n",
       "      <td>-0.101543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.046847</td>\n",
       "      <td>-0.414352</td>\n",
       "      <td>-0.315186</td>\n",
       "      <td>-0.640501</td>\n",
       "      <td>-0.570438</td>\n",
       "      <td>-0.086879</td>\n",
       "      <td>0.106243</td>\n",
       "      <td>-0.960319</td>\n",
       "      <td>-0.141895</td>\n",
       "      <td>0.249005</td>\n",
       "      <td>-0.144716</td>\n",
       "      <td>-0.404947</td>\n",
       "      <td>-0.101543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.108843</td>\n",
       "      <td>-0.414352</td>\n",
       "      <td>-0.315186</td>\n",
       "      <td>-0.640501</td>\n",
       "      <td>-0.570438</td>\n",
       "      <td>-0.152474</td>\n",
       "      <td>-0.187675</td>\n",
       "      <td>-0.840624</td>\n",
       "      <td>-0.141895</td>\n",
       "      <td>1.249215</td>\n",
       "      <td>-0.144716</td>\n",
       "      <td>-0.404947</td>\n",
       "      <td>-0.101543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2937</th>\n",
       "      <td>-0.176973</td>\n",
       "      <td>-0.235330</td>\n",
       "      <td>-0.315186</td>\n",
       "      <td>0.171157</td>\n",
       "      <td>-0.570438</td>\n",
       "      <td>8.371402</td>\n",
       "      <td>-0.452577</td>\n",
       "      <td>-0.344108</td>\n",
       "      <td>-0.141895</td>\n",
       "      <td>-0.195510</td>\n",
       "      <td>0.670980</td>\n",
       "      <td>2.654748</td>\n",
       "      <td>-0.101543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2938</th>\n",
       "      <td>-0.176973</td>\n",
       "      <td>0.594697</td>\n",
       "      <td>-0.315186</td>\n",
       "      <td>-0.640501</td>\n",
       "      <td>-0.570438</td>\n",
       "      <td>-0.553318</td>\n",
       "      <td>-0.699354</td>\n",
       "      <td>-0.743298</td>\n",
       "      <td>-0.141895</td>\n",
       "      <td>-0.556419</td>\n",
       "      <td>-0.288801</td>\n",
       "      <td>-0.404947</td>\n",
       "      <td>-0.101543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2939</th>\n",
       "      <td>0.125998</td>\n",
       "      <td>3.621842</td>\n",
       "      <td>0.276274</td>\n",
       "      <td>1.183079</td>\n",
       "      <td>1.214261</td>\n",
       "      <td>1.070736</td>\n",
       "      <td>0.593058</td>\n",
       "      <td>0.503062</td>\n",
       "      <td>-0.141895</td>\n",
       "      <td>-0.556419</td>\n",
       "      <td>0.292931</td>\n",
       "      <td>-0.006986</td>\n",
       "      <td>-0.101543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2940</th>\n",
       "      <td>0.339642</td>\n",
       "      <td>-0.414352</td>\n",
       "      <td>-0.315186</td>\n",
       "      <td>-0.640501</td>\n",
       "      <td>-0.570438</td>\n",
       "      <td>-0.807218</td>\n",
       "      <td>1.493734</td>\n",
       "      <td>0.387405</td>\n",
       "      <td>-0.141895</td>\n",
       "      <td>1.385371</td>\n",
       "      <td>-0.144716</td>\n",
       "      <td>-0.404947</td>\n",
       "      <td>-0.101543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2941</th>\n",
       "      <td>-0.176973</td>\n",
       "      <td>-0.414352</td>\n",
       "      <td>-0.315186</td>\n",
       "      <td>-0.640501</td>\n",
       "      <td>-0.570438</td>\n",
       "      <td>-0.214785</td>\n",
       "      <td>-0.056319</td>\n",
       "      <td>-1.120199</td>\n",
       "      <td>-0.141895</td>\n",
       "      <td>-0.556419</td>\n",
       "      <td>-0.144716</td>\n",
       "      <td>-0.404947</td>\n",
       "      <td>-0.101543</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2942 rows × 13 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            X1        X2        X3        X4        X5       X14       X15  \\\n",
       "0    -0.090870 -0.414352 -0.315186 -0.640501 -0.570438 -0.299418  0.979306   \n",
       "1     1.114564  5.218307  0.179099 -0.066085 -0.570438  1.992031 -0.558939   \n",
       "2    -0.176973 -0.414352 -0.315186  0.346217  1.214261 -0.891851 -0.956568   \n",
       "3    -0.046847 -0.414352 -0.315186 -0.640501 -0.570438 -0.086879  0.106243   \n",
       "4    -0.108843 -0.414352 -0.315186 -0.640501 -0.570438 -0.152474 -0.187675   \n",
       "...        ...       ...       ...       ...       ...       ...       ...   \n",
       "2937 -0.176973 -0.235330 -0.315186  0.171157 -0.570438  8.371402 -0.452577   \n",
       "2938 -0.176973  0.594697 -0.315186 -0.640501 -0.570438 -0.553318 -0.699354   \n",
       "2939  0.125998  3.621842  0.276274  1.183079  1.214261  1.070736  0.593058   \n",
       "2940  0.339642 -0.414352 -0.315186 -0.640501 -0.570438 -0.807218  1.493734   \n",
       "2941 -0.176973 -0.414352 -0.315186 -0.640501 -0.570438 -0.214785 -0.056319   \n",
       "\n",
       "           X16       X17       X18       X19       X20       X21  \n",
       "0    -0.146538 -0.141895 -0.556419 -0.288801 -0.404947 -0.101543  \n",
       "1     1.506001 -0.141895 -0.556419  0.526311  1.254308 -0.101543  \n",
       "2     1.518108 -0.141895  1.292904  0.719790  2.445281 -0.101543  \n",
       "3    -0.960319 -0.141895  0.249005 -0.144716 -0.404947 -0.101543  \n",
       "4    -0.840624 -0.141895  1.249215 -0.144716 -0.404947 -0.101543  \n",
       "...        ...       ...       ...       ...       ...       ...  \n",
       "2937 -0.344108 -0.141895 -0.195510  0.670980  2.654748 -0.101543  \n",
       "2938 -0.743298 -0.141895 -0.556419 -0.288801 -0.404947 -0.101543  \n",
       "2939  0.503062 -0.141895 -0.556419  0.292931 -0.006986 -0.101543  \n",
       "2940  0.387405 -0.141895  1.385371 -0.144716 -0.404947 -0.101543  \n",
       "2941 -1.120199 -0.141895 -0.556419 -0.144716 -0.404947 -0.101543  \n",
       "\n",
       "[2942 rows x 13 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "d0bc8aaf",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 统计评估指标\n",
    "evaluation_ls = []"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d255043f",
   "metadata": {},
   "source": [
    "#### 2.1逻辑回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "29720f1c",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_curve, auc\n",
    "test_label_list = test_y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "47680752",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "ba528b8e",
   "metadata": {},
   "outputs": [],
   "source": [
    "model = LogisticRegression(random_state=0,penalty='l1',solver=\"liblinear\",C=2,max_iter=1000)\n",
    "\n",
    "model.fit(train_X,train_y) \n",
    "score_r = model.score(test_X,test_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "b30fa5ef",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Label</th>\n",
       "      <th>Precision</th>\n",
       "      <th>Recall</th>\n",
       "      <th>F1</th>\n",
       "      <th>Support</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.931818</td>\n",
       "      <td>0.843354</td>\n",
       "      <td>0.885382</td>\n",
       "      <td>632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0.530806</td>\n",
       "      <td>0.741722</td>\n",
       "      <td>0.618785</td>\n",
       "      <td>151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>总体</td>\n",
       "      <td>0.854484</td>\n",
       "      <td>0.823755</td>\n",
       "      <td>0.833969</td>\n",
       "      <td>783</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Label  Precision    Recall        F1  Support\n",
       "0     0   0.931818  0.843354  0.885382      632\n",
       "1     1   0.530806  0.741722  0.618785      151\n",
       "2    总体   0.854484  0.823755  0.833969      783"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_label_list = test_y\n",
    "predict_label_list = model.predict(test_X)\n",
    "eval_model(test_label_list, predict_label_list, labelEncoder.classes_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "554facfd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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x6effooHDx6oekK0KSoqQlFRkeo4Nze3egEbSF5enupnLt5HRERkeJIPKJbJZGrHQgiNMm02b96MOXPmYMuWLfDw8Kiw3oIFC+Dm5qZ6+fr6PnPMhqBUKrnlAhERkRFIltzUr18f1tbWGr00t27d0ujNedqWLVswevRofPfdd+jWrVuldWfNmoWcnBzV68aNG88cOxEREdVckiU3crkcwcHBSExMVCtPTExEWFhYhe02b96MkSNHYtOmTejdu3eV17Gzs4Orq6vaS0peXl5QKpXw8vKSNA4iIiJLJekKxVFRURg2bBhCQkIQGhqK1atXIy0tDZGRkQAe97pkZGRgw4YNAB4nNsOHD8fnn3+ODh06qHp9HBwc4ObmJtnn0EdSUpLUIRAREVk0SZObgQMH4s6dO5g7dy4yMzPRsmVL7N69G35+fgCAzMxMtTVvVq1ahZKSEkyaNAmTJk1SlY8YMQLr1683dfhERERUA3H7BSIiIqrxzGKdGyIiIiJj4K7gJjZ+/HjcvXsX7u7uWLVqldThEBERWRwmNyb2008/qXYEJyIiIsPjYykiIiKyKExuiIiIyKIwuSEiIiKLwuSGiIiILAqTGyIiIrIoTG6IiIjIojC5ISIiIovC5IaIiIgsChfxM7HBgwfj3r17qFu3rtShEBERWSQmNya2aNEiqUMgIiKyaHwsRURERBaFyQ0RERFZFCY3REREZFGY3JhYYGAgXF1dERgYKHUoREREFonJjYnl5+cjLy8P+fn5UodCRERkkZjcEBERkUVhckNEREQWhcmNCSUkJCAjI0PqMIiIiCwakxsTio6OVv3s4uIiYSRERESWi8mNifz444+4cOGC6njevHkSRkNERGS5mNyYSGFhoernwMBARERESBgNERGR5eLeUibi4OAApVIJFxcX9toQEREZEZMbE+nTpw/S09OlDoOIiMji8bEUERERWRT23JhAcnIyiouLIZfLERwcLHU4REREFo3JjQn0798fGRkZUCqVfDRFRERkZHwsRURERBaFyQ0RERFZFCY3REREZFGY3BAREZFFYXJjZNwsk4iIyLSY3BgZN8skIiIyLSY3RpaXl6f6mdsuEBERGR+TGxNRKpXcLJOIiMgEuIifkaWkpEAIAZlMJnUoREREtQKTGyPjOBsiIiLT4mMpIiIisihMboiIiMii8LGUkcXFxSE3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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.8574482353927403"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict_pro_list, AUC = get_roc_auc(model,test_X,test_label_list)\n",
    "AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d4578bc1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "4e24a0c7",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 统计详情\n",
    "evaluation_now = list(eval_model(test_label_list, predict_label_list, labelEncoder.classes_).iloc[1,[1,2,3]].values)\n",
    "evaluation_now.append(score_r)\n",
    "evaluation_now.append(AUC)\n",
    "evaluation_ls.append(evaluation_now)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "06d950d1",
   "metadata": {},
   "source": [
    "#### 2.2KNeighborsClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "d9cb913a",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "e7335dc7",
   "metadata": {},
   "outputs": [],
   "source": [
    "model = KNeighborsClassifier(n_neighbors=9)\n",
    "\n",
    "model.fit(train_X,train_y) \n",
    "score_r = model.score(test_X,test_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "cf83ea5f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Label</th>\n",
       "      <th>Precision</th>\n",
       "      <th>Recall</th>\n",
       "      <th>F1</th>\n",
       "      <th>Support</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.929795</td>\n",
       "      <td>0.859177</td>\n",
       "      <td>0.893092</td>\n",
       "      <td>632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0.552764</td>\n",
       "      <td>0.728477</td>\n",
       "      <td>0.628571</td>\n",
       "      <td>151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>总体</td>\n",
       "      <td>0.857085</td>\n",
       "      <td>0.833972</td>\n",
       "      <td>0.842080</td>\n",
       "      <td>783</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Label  Precision    Recall        F1  Support\n",
       "0     0   0.929795  0.859177  0.893092      632\n",
       "1     1   0.552764  0.728477  0.628571      151\n",
       "2    总体   0.857085  0.833972  0.842080      783"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_label_list = test_y\n",
    "predict_label_list = model.predict(test_X)\n",
    "eval_model(test_label_list, predict_label_list, labelEncoder.classes_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "79c045ca",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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p0+fIi8vDwBQtWpVLFq0SNf1kR68GG748D4iIjI0WoebJUuWYOXKlZg2bRqMjY2ldm9vb/z99986LY50LycnB0eOHAEA2Nvb4/XXX5e3ICIiIh3TOtxER0ejRYsWau1mZmZ49uyZTooi/Tlz5gxSU1MBPO+1KWoeLyIioopK63BTr149XLhwQa19z5490qzhVH69ON0FL0kREZEh0voJxZMmTcLYsWORmZkJIQTOnDmD8PBwhIaGYtWqVfqokXSI422IiMjQaR1uhg4ditzcXEyePBnp6ekYMGAAateuje+++w79+/fXR42kIykpKfjzzz8BAI0aNYKLi4vMFREREeleqeaWGjlyJEaOHInExETk5+fD3t5e13WRHqSkpKBv3744cOAAe22IiMhgaT231MyZM/Hhhx+ifv36+qpJrzi3FJCfn4/09HRYWVnJXQoREZFG9Dq31NatW+Hu7o7WrVvj+++/x+PHj0tdKMnDyMiIwYaIiAyW1uHm0qVLuHTpEjp06ICFCxeidu3a6Ny5MzZs2ID09HR91EhERESkMa0vS73s5MmT2LBhAzZv3ozMzEykpKToqja9qKyXpU6dOoXGjRujevXqcpdCRESkNb1elnqZpaUlLCwsYGpqipycnFfdHelBbm4uevbsiVq1aqFPnz54xTxLRERUrpUq3ERHR2P27Nlo0qQJvL29cf78ecyYMQPx8fG6ro904PDhw3j06BFycnKQl5fHpxITEZFB0/pWcB8fH5w5cwavv/46hg4dKj3nhsqv8PBw6ecBAwbIWAkREZH+aR1u2rdvj1WrVuG1117TRz2kY1lZWdi2bRsAwNraGl26dJG5IiIiIv3SOtzMmTNHH3WQnuzZswfJyckAgO7du8PCwkLmioiIiPRLo3ATHByMr776CpaWlggODi523YULF+qkMNKNDRs2SD9/8MEHMlZCRERUNjQKN1FRUdKdUFFRUXotiHQnNTUVv/32GwCgRo0anHKBiIgqBY3CzeHDhwv9mcq3nTt3IjMzEwDQt29fmJiYyFwRERGR/ml9K/iwYcOQmpqq1v7s2TMMGzZMJ0WRbrx4lxQvSRERUWWhdbj5+eefkZGRodaekZGBtWvX6qQo0o2AgAB4eXnBxcUFfn5+cpdDRERUJjS+WyolJQVCCAghkJqaCnNzc+m9vLw87N69G/b29nopkkpn3LhxGDduHJ4+fQojo1d+GDUREVGFoHG4qVq1KhQKBRQKBdzd3dXeVygUmDlzpk6LI92oWrWq3CUQERGVGY3DzeHDhyGEQIcOHbB161aVCRhNTU3h6uoKJycnvRRJREREpCmNw03btm0BPJ9Xqk6dOpyfqBw7evQorKys4Onpyd8TERFVOhqFm0uXLqFp06YwMjJCcnIy/v777yLXbdasmc6Ko9L57LPPEBkZCXd3d5w9e7bEqeGJiIgMiUbhpnnz5oiPj4e9vT2aN28OhUIBIYTaegqFAnl5eTovkjR38+ZNREZGAng+lxSDDRERVTYahZvo6GjY2dlJP1P5xWfbEBFRZadRuHF1dS30ZypfhBBSuFEoFOjXr5/MFREREZW9Uj3E748//pCWJ0+ejKpVq8LX1xf37t3TaXGknQsXLuDGjRsAgLfeegvOzs4yV0RERFT2tA43c+bMgYWFBQDg9OnT+P777zF37lzUrFkTEyZM0HmBpDlekiIiItLiVvAC9+/fR4MGDQAAO3bsQO/evfHRRx/Bz88P7dq103V9pKH8/Hxs3LgRAKBUKtG7d2+ZKyIiIpKH1j03VlZWSEpKAgDs378f77zzDgDA3Ny80DmnqGycPHkS9+/fBwD4+/ujRo0aMldEREQkD617bjp27IgRI0agRYsWuHnzJrp06QIAuHLlCurWravr+khDL16SGjBggIyVEBERyUvrnpulS5fCx8cHjx8/xtatW6UegsjISI7zkFHPnj0xYMAA2NnZ4f3335e7HCIiItkoRGFP4zNgKSkpsLW1RXJyskE+4C43NxdKpdYdckREROWaNt/fpfoWfPr0KVavXo1r165BoVDAw8MDw4cPh62tbakKJt1hsCEiospO68tS586dQ/369fHtt9/i33//RWJiIr799lvUr18f58+f10eNRERERBrT+rJUmzZt0KBBA6xcuVLqJcjNzcWIESNw584dHDt2TC+F6oqhXZY6efIk7t27h27dusHKykrucoiIiPRCm+9vrcONhYUFoqKi0LhxY5X2q1evwtvbG+np6dpXXIYMLdz06tUL27ZtQ5UqVfDnn3/i9ddfl7skIiIindPm+1vry1I2NjaIiYlRa79//z6sra213R29guTkZGkqDGtrazRp0kTmioiIiOSndbjp168fhg8fjk2bNuH+/ft48OABNm7ciBEj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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.8582131779696538"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict_pro_list, AUC = get_roc_auc(model,test_X,test_label_list)\n",
    "AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f9535e3e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "ef51354f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 统计详情\n",
    "evaluation_now = list(eval_model(test_label_list, predict_label_list, labelEncoder.classes_).iloc[1,[1,2,3]].values)\n",
    "evaluation_now.append(score_r)\n",
    "evaluation_now.append(AUC)\n",
    "evaluation_ls.append(evaluation_now)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d420cf77",
   "metadata": {},
   "source": [
    "#### 2.3GaussianNB"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "f34ff2aa",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.naive_bayes import GaussianNB"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "5221cf36",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 训练\n",
    "model = GaussianNB()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "d6d2e04d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7879948914431673"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 测试\n",
    "model = model.fit(train_X,train_y)\n",
    "model.score(test_X,test_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "88dafe4f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Label</th>\n",
       "      <th>Precision</th>\n",
       "      <th>Recall</th>\n",
       "      <th>F1</th>\n",
       "      <th>Support</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.864062</td>\n",
       "      <td>0.875000</td>\n",
       "      <td>0.869497</td>\n",
       "      <td>632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0.447552</td>\n",
       "      <td>0.423841</td>\n",
       "      <td>0.435374</td>\n",
       "      <td>151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>总体</td>\n",
       "      <td>0.783739</td>\n",
       "      <td>0.787995</td>\n",
       "      <td>0.785777</td>\n",
       "      <td>783</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Label  Precision    Recall        F1  Support\n",
       "0     0   0.864062  0.875000  0.869497      632\n",
       "1     1   0.447552  0.423841  0.435374      151\n",
       "2    总体   0.783739  0.787995  0.785777      783"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_label_list = test_y\n",
    "predict_label_list = model.predict(test_X)\n",
    "eval_model(test_label_list, predict_label_list, labelEncoder.classes_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "2bbe103a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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26u0OTg4oFu3bhrtj4gqNxY3RAasSZMmGp36adeuXZkfQ9C/f/8ybefg4KDxaakXNW3aFE2bNi3TtkREkhc3S5cuxddff43U1FQ0atQICxYsQFBQUIn9165dizlz5iAhIQF2dnbo2rUr5s6di2rVqpVjaqKSrV27FpMnT0ZWVpay7dkVPR4eHrhx4wYAoHfv3hrNZWnYsKHKsrW1NYYOHQpbW1te+kxEVAyZEEJI9eYbN27EwIEDsXTpUrRp0wbLly/HihUrEB8fDw8PD7X+x44dQ7t27TB//nx0794dKSkpCA8PR7169TS+KiMzMxN2dnbIyMiAra2trj8SERo2bIjLly+XuO7SpUvlnIiIyPBp8/0taXETEBCAFi1aIDo6Wtnm4+ODnj17YtasWWr9586di+joaJU7kn777beYM2cObt68qdF7srghfbp79y6cnJwAAKampqhXr55ynY2NDT777DN0795dqnhERAZLm+9vyU5L5eXl4ezZs5g8ebJKe5cuXXDixIlit2ndujWmTp2K3bt3IyQkBHfu3MHPP/9c6iTD3Nxc5ObmKpczMzN18wGIipGTk6P82dXVtcQRHCIi0h/Jipv09HQUFhaqPbXX2dkZaWlpxW7TunVrrF27FmFhYcjJyUFBQQF69OiBb7/9tsT3mTVrFqKionSanSqPXbt2IS4u7qX9fHx80KdPH+WyXC7HmDFj9JiMiIhKIvmEYplMprIshFBreyY+Ph7jxo3DtGnTEBwcjNTUVEycOBHh4eElPixvypQpiIiIUC5nZmbC3d1ddx+AjNqOHTs0ehBjnz590KdPH9SsWRP379+HQqFQuSkdERGVH8mKG0dHR5iamqqN0ty5c0dtNOeZWbNmoU2bNso7lzZt2hTW1tYICgrCF198gRo1aqhtY25uDnNzc91/AKJimJiYoGrVqlLHICKq1CQrbhQKBfz8/BAbG4tevXop22NjY/HWW28Vu012djbkctXIpqamAJ6O+BDp2rhx41T+Pkvi4uJSDmmIiEgTkp6WioiIwMCBA+Hv74/AwEB89913SE5ORnh4OICnp5RSUlKwevVqAED37t0xcuRIREdHK09LTZgwAS1btoSrq6uUH4WMSGJionJEkTeTIyIyPJIWN2FhYbh37x5mzJiB1NRUNG7cGLt374anpyeAp7eZT05OVvYfMmQIsrKysHjxYnz88cewt7dHx44d8dVXX0n1EcgIzZ8/H4sXLwYAnD59Gv7+/hInIiIibUh6nxsp8D439DIffvghixsiogpGm+9vk3LKRFThnT9/Hl27dsX69euljkJERK9A8kvBiSqK2bNnY9++fSptlpaWEqUhIqKyYnFDBKCwsFBlxMbS0hK9e/dWe2glERFVfCxuiADs3btXZTk1NRV2dnYSpSEiolfBOTdEeHr59/NY2BARGS4WN0R4eluCM2fO4KeffkJ6errUcYiI6BXwtBRVWklJSTh58iS8vLzg7u4OPz8/+Pn5SR2LiIheEUduqFJat24dateujQEDBqB169YaPRyTiIgMA4sbqpQ2bNigsswnxRMRGQ+elqJKoaioCIMGDUJsbCwA4MGDB8p1H3/8Md59912pohERkY7x8QtUKRw/fhxt27ZVazczM8ODBw9gbW0tQSoiItKUNt/fHLmhSuHx48cqy15eXjAzM0N4eDgLGyIiI8PihiqFDh064N69ewAACwsLWFlZSZyIiIj0hcUNGbUrV67gl19+gb+/P9q1ayd1HCIiKge8WoqMVk5ODlq3bo1PPvkEe/bskToOERGVExY3ZLRu376N+/fvAwC++uoridMQEVF5YXFDRmvSpEnKn5s2bSphEiIiKk8sbshonT9/Xvlzr169JExCRETlicUNGS0Tk//9eX/88ccSJiEiovLE4oaMnr29PWxsbKSOQURE5YTFDRkdIQT+7//+D1euXJE6ChERSYD3uSGjc+3aNezduxdyuRwymQwWFhZSRyIionLEkRsyOnXr1sWZM2ewbNkyWFhY4NNPP5U6EhERlSM+OJOIiIgqPD44kyqtpKQkZGZmAgAaNWoEuZx/4kRElQ1PS5FRGT9+PJo3b47mzZvjwYMHUschIiIJsLgho5Kamip1BCIikhiLGzIKQgiEhITgzJkzUkchIiKJsbgho5CSkoK9e/cql21sbHjjPiKiSorFDRm8Gzdu4PXXX1dp27hxI+9vQ0RUSbG4IYO3atUqJCUlKZdHjBiBkJAQCRMREZGUWNyQwcvKylJZHjt2rERJiIioIuBN/MjgJSYmIiUlBQDQrFkz/l6JiIyQ3m/iV1BQgEOHDuHatWvo378/bGxscPv2bdja2qJKlSplCk2kDSEEjh8/jrNnz2LYsGGoXbu21JGIiKiC0Lq4uXHjBrp27Yrk5GTk5uaic+fOsLGxwZw5c5CTk4Nly5bpIyeRilOnTiEoKAgA0Lt3b14ZRURESlrPuRk/fjz8/f3x4MEDWFpaKtt79eqF3377TafhiEoSFxen/Hnr1q3SBSEiogpH65GbY8eO4fjx41AoFCrtnp6eynkPROXJzMxM6ghERFSBaD1yU1RUhMLCQrX2W7du8dQAScLKykrqCEREVIFoXdx07twZCxYsUC7LZDI8evQIkZGRCA0N1WU2omKtXbsW4eHhUscgIqIKSuvTUvPnz0eHDh3QsGFD5OTkoH///khISICjoyPWr1+vj4xEKubNm6ey7ODgIFESIiKqiLQublxdXREXF4cNGzbg7NmzKCoqwvDhwzFgwACVCcZE+pKTk6P8ecyYMejatauEaYiIqKLR+iZ+R44cQevWrSGXq9ZFBQUFOHHihNozfioa3sTP8DVq1Ajx8fGwsbFBZmam1HGIiKgc6PUmfh06dEBqaiqcnJxU2jMyMtChQ4diJxsT6VKnTp1Qv359jhQSEVGxtC5uhBCQyWRq7ffu3YO1tbVOQhGVZuHChVJHICKiCkzj4qZ3794Anl4dNWTIEJibmyvXFRYW4vz582jdurXuE1Kl9+jRIxw+fBgFBQUwNTVFSEgITE1NpY5FREQVlMbFjZ2dHYCnIzc2NjYqpwQUCgVatWqFkSNH6j4hVWqFhYXw9fXFP//8AwAYMGAAhBCoW7cufHx8JE5HREQVkdYTiqOiovDJJ58Y7CkoTig2LImJiahTp45a+7p16/Duu+9KkIiIiKSgzfe31sWNoWNxYzjOnTuHFi1aKJcbN26MAQMGoH79+ujRowdPTRERVSJ6vVoKAH7++Wds2rQJycnJyMvLU1n3559/lmWXRGo2b96sstyxY0dMnjxZojRERGQotH78wqJFizB06FA4OTnh3LlzaNmyJapVq4bExESEhIToIyNVUgUFBcqfGzVqhEmTJkmYhoiIDIXWxc3SpUvx3XffYfHixVAoFJg0aRJiY2Mxbtw4ZGRk6CMjEaKjo1GzZk2pYxARkQHQ+rRUcnKy8pJvS0tLZGVlAQAGDhyIVq1aYfHixbpNSJVWw4YN0b17dwB8fhQREWlO6+LGxcUF9+7dg6enJzw9PfHf//4XzZo1Q1JSEirZ3GTSsyFDhmDIkCFSxyAiIgOj9Wmpjh07YteuXQCA4cOH46OPPkLnzp0RFhaGXr166TwgERERkTa0vhS8qKgIRUVFygdnbtq0CceOHUPdunURHh4OhUKhl6C6wkvBiYiIDI9k97lJSUmp8JM+WdwQEREZHm2+v7U+LVWctLQ0fPjhh6hbt67W2y5duhReXl6wsLCAn58fjh49Wmr/3NxcTJ06FZ6enjA3N0edOnXwww8/lDU6VWBfffUV6tati7p16+L06dNSxyEiIgOhcXHz8OFDDBgwANWrV4erqysWLVqEoqIiTJs2DbVr18Z///tfrYuMjRs3YsKECZg6dSrOnTuHoKAghISEIDk5ucRt+vbti99++w0rV67ElStXsH79ejRo0ECr9yXDcO/ePVy7dg3Xrl1DTk6O1HGIiMhAaHxaasyYMdi1axfCwsKwd+9eXL58GcHBwcjJyUFkZCTatWun9ZsHBASgRYsWiI6OVrb5+PigZ8+emDVrllr/vXv3ol+/fkhMTCzzpcE8LWUYioqKVB6vcOTIEQQFBUmYiIiIpKSX01K//vorVq1ahblz52Lnzp0QQsDb2xu///57mQqbvLw8nD17Fl26dFFp79KlC06cOFHsNjt37oS/vz/mzJmDmjVrwtvbG5988gmePHlS4vvk5uYiMzNT5UUV34unoapWrSpREiIiMjQa3+fm9u3baNiwIQCgdu3asLCwwIgRI8r8xunp6SgsLISzs7NKu7OzM9LS0ordJjExEceOHYOFhQW2bduG9PR0jBkzBvfv3y/xlNisWbMQFRVV5pwkjRcL1saNG0uUhIiIDI3GIzdFRUUwMzNTLpuamsLa2vqVA8hkMpVlIYRa2/MZZDIZ1q5di5YtWyI0NBTz5s1DTExMiaM3U6ZMQUZGhvJ18+bNV85M5YsPyyQiIm1oPHIjhMCQIUNgbm4OAMjJyUF4eLhagbN161aN9ufo6AhTU1O1UZo7d+6ojeY8U6NGDdSsWRN2dnbKNh8fHwghcOvWLdSrV09tG3Nzc2VmMhzXr1+XOgIRERkojUduBg8eDCcnJ9jZ2cHOzg7vvfceXF1dlcvPXppSKBTw8/NDbGysSntsbKzy2VUvatOmDW7fvo1Hjx4p265evQoTExO4ublp/N5U8Q0dOlTqCEREZKB0ehM/bW3cuBEDBw7EsmXLEBgYiO+++w7ff/89Ll26BE9PT0yZMgUpKSlYvXo1AODRo0fw8fFBq1atEBUVhfT0dIwYMQLt2rXD999/r9F78mopw2BlZaU81XjgwAG88cYbEiciIiIpafP9rfWDM3UpLCwM9+7dw4wZM5CamorGjRtj9+7d8PT0BACkpqaq3POmSpUqiI2NxYcffgh/f39Uq1YNffv2xRdffCHVRyA9yc7Oxo0bNyCEQK1ataSOQ0REBkTSkRspcOSGiIjI8JT74xeIiIiIKgoWN1ShrFixAiYmJjAxMcHKlSuljkNERAZI0jk3RM87dOgQRo4cKXUMIiIycGUauVmzZg3atGkDV1dX3LhxAwCwYMEC7NixQ6fhqHKZNm2ayrKVlZVESYiIyJBpXdxER0cjIiICoaGhePjwIQoLCwEA9vb2WLBgga7zkZFLT09HZGQkRo4ciYsXLyrbO3bsiDfffFPCZEREZKi0vlqqYcOG+PLLL9GzZ0/Y2Njgr7/+Qu3atXHx4kW0b98e6enp+sqqE7xaqmL55JNP8M0336i0ValSBVlZWRIlIiKiikivV0slJSXB19dXrd3c3ByPHz/WdndUyRX3mIV+/fqVfxAiIjIaWk8o9vLyQlxcnPJGe8/s2bNH+dRwIk1t3rwZT548wbVr1wA8nWdTp04diVMREZEh07q4mThxIj744APk5ORACIFTp05h/fr1mDVrFlasWKGPjGTEZDIZrKys0KRJE6mjEBGRkdC6uBk6dCgKCgowadIkZGdno3///qhZsyYWLlzI0wlEREQkuVd6/EJ6ejqKiorg5OSky0x6xQnFFUdKSgouX74MAPDx8UHNmjUlTkRERBWVXicUR0VFKedHODo6GlRhQxXL3r170blzZ3Tu3Bl79uyROg4RERkJrYubLVu2wNvbG61atcLixYtx9+5dfeQiIiIiKhOti5vz58/j/Pnz6NixI+bNm4eaNWsiNDQU69atQ3Z2tj4ykpHJyMjAxx9/jIULF0odhYiIjFCZHr/QqFEjfPnll0hMTMTBgwfh5eWFCRMmwMXFRdf5yAjFxMRg3rx5uHDhgrLNzMxMwkRERGRMXvmp4NbW1rC0tIRCoUB+fr4uMpERy8rKwpYtW1Ta6tSpg9DQUIkSERGRsSlTcZOUlISZM2eiYcOG8Pf3x59//onp06cjLS1N1/nIyGRlZeHo0aPK5R07duDq1auoXr26hKmIiMiYaH2fm8DAQJw6dQpNmjTB0KFDlfe5IXrRkSNH8N133yEoKAjNmzdHQECAynpbW1u0b98eJiavPIBIRESkpHVx06FDB6xYsQKNGjXSRx4yEqtWrcKwYcMAAGvXrsUnn3yCgIAAODg4YNeuXZDJZAgMDOS9hoiISOe0Lm6+/PJLfeQgI5GTkwMA2L17t0p7/fr1AQAWFhZ48803yz0XERFVHhoVNxEREfj8889hbW2NiIiIUvvOmzdPJ8HIsBQWFiIkJASxsbFq66KiojBo0CAJUhERUWWkUXFz7tw55ZVQ586d02sgMkx//vlnsYWNmZkZxo8fD4VCIUEqIiKqjDQqbg4ePFjsz0TPc3V1xe3btwEA7dq1g1wux8CBA2FnZydxMiIiqky0nnMzbNgwLFy4EDY2Nirtjx8/xocffogffvhBZ+HIcLz22mtISUmROgYREZH297n58ccf8eTJE7X2J0+eYPXq1ToJRURERFRWGo/cZGZmQggBIQSysrJgYWGhXFdYWIjdu3fzCeFEREQkOY2LG3t7e8hkMshkMnh7e6utl8lkiIqK0mk4IiIiIm1pXNwcPHgQQgh07NgRW7ZsgYODg3KdQqGAp6cnXF1d9RKSKr4rV65g2rRpAIBu3brx0m8iIpKMxsVNu3btADx9rpSHhwdkMpneQpHhSU9Px6ZNmwAAbm5uEqchIqLKTKPi5vz582jcuDFMTEyQkZGBCxculNi3adOmOgtHhuOjjz6SOgIREREADYub5s2bIy0tDU5OTmjevDlkMhmEEGr9ZDIZCgsLdR6SKr7nC153d3cJkxARUWWnUXGTlJSE6tWrK38meuaLL77A8uXLlc+UAoDhw4dLmIiIiCo7mShuCMaIZWZmws7ODhkZGXwi9SvKyspC1apVVUbrAgIC8N///lfCVEREZIy0+f4u0038fv31V+XypEmTYG9vj9atW+PGjRvapyWDlZOTA1tbW3h6esLCwgLNmjVDZGSk1LGIiKiS07q4+fLLL2FpaQkAOHnyJBYvXow5c+bA0dGRk0orGYVCgQMHDsDLywshISGIi4tDSEiI1LGIiKiS0/rZUjdv3kTdunUBANu3b0efPn0watQotGnTBu3bt9d1PqrA7Ozs0KJFC1hbW2PgwIFSxyEiIgJQhuKmSpUquHfvHjw8PLB//37laI2FhUWxz5wi47dt2zaYmZlJHYOIiAhAGYqbzp07Y8SIEfD19cXVq1fRrVs3AMClS5dQq1YtXeejCuzff/9Ffn4+b9pHREQVitZzbpYsWYLAwEDcvXsXW7ZsQbVq1QAAZ8+exbvvvqvzgFQxnThxAi4uLvjqq68wffp0qeMQEREp8VJwKpPIyEjMmDFDuVzJ/oyIiKicafP9rfVpKQB4+PAhVq5cicuXL0Mmk8HHxwfDhw+HnZ1dmQKT4Xm+mFm0aJGESYiIiFRpfVrqzJkzqFOnDubPn4/79+8jPT0d8+fPR506dfDnn3/qIyNVcA0aNJA6AhERkZLWIzcfffQRevToge+//x5y+dPNCwoKMGLECEyYMAFHjhzReUgiIiIiTWld3Jw5c0alsAEAuVyOSZMmwd/fX6fhiIiIiLSl9WkpW1tbJCcnq7XfvHkTNjY2OglFFd+BAwekjkBERFQsrYubsLAwDB8+HBs3bsTNmzdx69YtbNiwASNGjOCl4JVEamoqTp48qVyWyWQSpiEiIlKl9WmpuXPnQiaTYdCgQSgoKAAAmJmZYfTo0Zg9e7bOA1LFc/36dZXlgIAAaYIQEREVo8z3ucnOzsa1a9cghEDdunVhZWWl62x6wfvcvLr09HQcOHAA8fHxCA4ORps2baSORERERk4v97nJzs7GxIkTsX37duTn56NTp05YtGgRHB0dXzkwGRZHR0f069dP6hhERETF0ri4iYyMRExMDAYMGAALCwusX78eo0ePxubNm/WZjyqQpKQk5Vwbf39/eHt7S5yIiIhIncbFzdatW7Fy5Urlv9jfe+89tGnTBoWFhTA1NdVbQKo4jh07hkGDBgF4+owxFjdERFQRaXy11M2bNxEUFKRcbtmyJeRyOW7fvq2XYFTxfP3111JHICIieimNi5vCwkIoFAqVNrlcrrxiiozbo0ePcOHCBeVylSpVJExDRERUMo1PSwkhMGTIEJibmyvbcnJyEB4eDmtra2Xb1q1bdZuQJLdu3Tps2bJFpa1nz57ShCEiInoJjYubwYMHq7W99957Og1DFU9ycjLee+89laeAv/XWW7yMnoiIKiyNi5tVq1bpMwdVULdv31YpbBQKBfr37y9hIiIiotJp/fgFXVu6dCm8vLxgYWEBPz8/HD16VKPtjh8/DrlcjubNm+s3ICkNHToUd+7cQd++faWOQkREVCKtH7+gSxs3bsSECROwdOlStGnTBsuXL0dISAji4+Ph4eFR4nYZGRkYNGgQ3njjDfz777/lmLjyKCoqQkJCAvz9/XHv3j0AgLm5ucr8KiIiooqozI9f0IWAgAC0aNEC0dHRyjYfHx/07NkTs2bNKnG7fv36oV69ejA1NcX27dsRFxen8Xvy8Quaad++PdLS0vD3339LHYWIiEir72/JTkvl5eXh7Nmz6NKli0p7ly5dcOLEiRK3W7VqFa5du4bIyEh9R6y0Hjx4gMOHD6OoqAg///yz1HGIiIi0Illxk56ejsLCQjg7O6u0Ozs7Iy0trdhtEhISMHnyZKxduxZyuWZn1HJzc5GZmanyotI9G8xLSEjgRHIiIjI4ZSpu1qxZgzZt2sDV1RU3btwAACxYsAA7duzQel8ymUxlWQih1gY8vYlg//79ERUVpdVt/2fNmgU7Ozvly93dXeuMREREZDi0Lm6io6MRERGB0NBQPHz4EIWFhQAAe3t7LFiwQOP9ODo6wtTUVG2U5s6dO2qjOQCQlZWFM2fOYOzYsZDL5ZDL5ZgxYwb++usvyOVy/P7778W+z5QpU5CRkaF83bx5U/MPWwllZGRg9OjRUscgIiIqM62Lm2+//Rbff/89pk6dqvLATH9/f5Xb87+MQqGAn58fYmNjVdpjY2PRunVrtf62tra4cOEC4uLilK/w8HDUr18fcXFxCAgIKPZ9zM3NYWtrq/Kikv3000/YtGmTcvn5O1ITEREZAq0vBU9KSoKvr69au7m5OR4/fqzVviIiIjBw4ED4+/sjMDAQ3333HZKTkxEeHg7g6ahLSkoKVq9eDRMTEzRu3FhleycnJ1hYWKi1U9l98cUXKssjR46UKAkREVHZaF3ceHl5IS4uDp6enirte/bsQcOGDbXaV1hYGO7du4cZM2YgNTUVjRs3xu7du5X7Tk1NRXJysrYR6RU8f5rw119/RUhIiIRpiIiItKf1fW5WrVqFzz77DN988w2GDx+OFStW4Nq1a5g1axZWrFiBfv366SurTlSm+9w8efIEhw8fRn5+frHr8/PzYWdnh9atW0OhUMDU1BRBQUE4duwY7O3tkZSUBHt7+/INTUREVAxtvr+1HrkZOnQoCgoKMGnSJGRnZ6N///6oWbMmFi5cWOELm8pECIE2bdrg3LlzGvXfvXs3QkJCsGjRImRkZMDPzw82NjZ6TklERKR7r3SH4vT0dBQVFcHJyUmXmfSqsozcZGdn47333kN+fj5++eWXUvvKZDIkJiaiVq1a5ROOiIhIS3oduXmeo6Pjq2xOemRlZYWtW7fi9OnTCAwMLLVvhw4dWNgQEZHRKNOE4uJusvdMYmLiKwUi3Xrttdfw2muvSR2DiIio3Ghd3EyYMEFlOT8/H+fOncPevXsxceJEXeUiIiIiKhOti5vx48cX275kyRKcOXPmlQORbsydOxfXrl0D8PR3Y2Ii2WPEiIiIytUrTSh+XmJiIpo3b17hH0xZGSYU5+TkwNLSUrlcUFCgcjdpIiIiQ6PN97fO/jn/888/w8HBQVe7o1ewefNmqSMQERFJRuvTUr6+vioTioUQSEtLw927d7F06VKdhqOyef6uzvb29hy1ISKiSkXr4qZnz54qyyYmJqhevTrat2+PBg0a6CoX6ciaNWukjkBERFSutCpuCgoKUKtWLQQHB8PFxUVfmYiIiIjKTKs5N3K5HKNHj0Zubq6+8hARERG9Eq0nFAcEBGj8vCIiIiKi8qb1nJsxY8bg448/xq1bt+Dn5wdra2uV9U2bNtVZOCIiIiJtaVzcDBs2DAsWLEBYWBgAYNy4ccp1MpkMQgjIZDIUFhbqPiVpZdiwYbh69SpWr14Ne3t7qeMQERGVK41v4mdqaorU1FQ8efKk1H6enp46CaYvleEmfgAwdepUZGZmYuHChbw7MRERGTy9PBX8WQ1U0YsXemrmzJlSRyAiIpKEVnNuSnsaOEkvNjYWx48fh7W1NSZMmAAzMzOpIxEREZU7rYobb2/vlxY49+/ff6VAVDYXLlxAly5dAACTJk3C/v37UatWLTRq1EjiZEREROVLq+ImKioKdnZ2+spCr+Cvv/5S/jxnzhzMmTMHW7duZXFDRESVjsYTik1MTJCWlgYnJyd9Z9IrY51Q/PyI2qhRo/Dxxx/D29tbwkRERES6o5engnO+TcX16NEjleVevXqxsCEiokpL4+JGwwEeqgCezb0hIiKqjDSec1NUVKTPHKQjnTp14n1tiIioUuO3IBERERkVFjdGwMzMDGvWrAEAWFpaSpyGiIhIWixujIC5uTnq1auH2rVrY/z48VLHISIikpTWTwWniuPgwYPIzc2FpaUl2rVrh2vXrkkdiYiISHIsbgzQgwcPsGfPHowePRqZmZnw9PTE9evXpY5FRERUIbC4MTBCCLRt2xbx8fFSRyEiIqqQOOfGwGRnZ6sVNn5+fhKlISIiqnhY3Biw+vXrY926dVi9erXUUYiIiCoMnpYyYG5ubnj33XeljkFERFShcOTGwLz4HCkiIiJSxeLGwCgUCuXPdnZ2EiYhIiKqmHhaysAoFArUrVsXTk5O+PTTT6WOQ0REVOGwuDEw1tbWSEhIkDoGERFRhcXTUkRERGRUOHJjQDIyMvDgwQMAgJOTE6ysrCROREREVPFw5MZACCEwfPhweHl5wcvLC7GxsVJHIiIiqpBY3BiIUaNGYcuWLVLHICIiqvBY3BiIHTt2qCx7e3tLlISIiKhiY3FTwWVnZyMgIAB3795Vtu3evRs+Pj4SpiIiIqq4WNxUcL/99htOnTqlXG7RogVCQkIkTERERFSxsbip4PLy8lSWFyxYIE0QIiIiA8HipoJr1qwZevXqBQBYvHgxgoKCJE5ERERUsbG4qeDq1q0LGxsbtGjRAr1795Y6DhERUYXHm/hVQPn5+fj3338BPH3cwo8//ihxIiIiIsPBkZsK6O+//4a7uzvc3d35cEwiIiItsbghIiIio8LihoiIiIwKixsiIiIyKixuiIiIyKiwuCEiIiKjwuKGiIiIjAqLmwro8uXLUkcgIiIyWJIXN0uXLoWXlxcsLCzg5+eHo0ePlth369at6Ny5M6pXrw5bW1sEBgZi37595Zi2fBQUFCh/lst5n0UiIiJtSFrcbNy4ERMmTMDUqVNx7tw5BAUFISQkBMnJycX2P3LkCDp37ozdu3fj7Nmz6NChA7p3745z586Vc3L9cnd3BwDY2toiLCxM4jRERESGRSaEEFK9eUBAAFq0aIHo6Ghlm4+PD3r27IlZs2ZptI9GjRohLCwM06ZN06h/ZmYm7OzskJGRAVtb2zLl1rfc3Fykp6ejatWqsLKykjoOERGR5LT5/pZs5CYvLw9nz55Fly5dVNq7dOmCEydOaLSPoqIiZGVlwcHBQR8RJWNubo6aNWuysCEiIioDySZ0pKeno7CwEM7Ozirtzs7OSEtL02gf33zzDR4/foy+ffuW2Cc3Nxe5ubnK5czMzLIFLgeXLl3CTz/9BADo2rUr2rVrJ3EiIiIiwyP5bFWZTKayLIRQayvO+vXrMX36dOzYsQNOTk4l9ps1axaioqJeOWd5uHr1KmbPng0AqFq1KosbIiKiMpDstJSjoyNMTU3VRmnu3LmjNprzoo0bN2L48OHYtGkTOnXqVGrfKVOmICMjQ/m6efPmK2cnIiKiikuy4kahUMDPzw+xsbEq7bGxsWjdunWJ261fvx5DhgzBunXr0K1bt5e+j7m5OWxtbVVeREREZLwkPS0VERGBgQMHwt/fH4GBgfjuu++QnJyM8PBwAE9HXVJSUrB69WoATwubQYMGYeHChWjVqpVy1MfS0hJ2dnaSfQ4iIiKqOCQtbsLCwnDv3j3MmDEDqampaNy4MXbv3g1PT08AQGpqqso9b5YvX46CggJ88MEH+OCDD5TtgwcPRkxMTHnHJyIiogpI8gnFY8aMwZgxY4pd92LBcujQIf0HktCFCxekjkBERGTwJH/8Aj1VVFSEyMhI5bImV4wRERGROhY3EhBC4NixY9i5c6eyLS8vT6VP586dyzsWERGRUWBxI4GoqCgEBQXhvffeK3Z9o0aN0Lx58/INRUREZCQkn3NT2Tx8+BAHDhwAAGRlZSE7OxtWVlYwNzdHdnY2AMDEhDUnERFRWfFbtBzNmjULjo6OOH78uNo6mUwGS0tLWFpawtzcXIJ0RERExoHFTTlasWIFCgsLlcsODg5QKBQSJiIiIjI+LG7KUUFBAYCnd03u27cv1q9fD7mcZwaJiIh0id+sEnBwcMDGjRuljkFERGSUOHJDRERERoUjN+XI0dEROTk5cHR0lDoKERGR0WJxU47Onj0rdQQiIiKjx9NSREREZFQ4clMO8vLykJWVBQCwsrKCpaWlxImIiIiMF0duysHevXvh6OgIR0dHLFiwQOo4RERERo3FDRERERkVFjflYMaMGVJHICIiqjRY3OhZQUGBylVSDg4OEqYhIiIyfixu9Cg7Oxvjxo1TaQsLC5MoDRERUeXA4kaPtmzZgujoaOXyG2+8AXt7e+kCERERVQIsbvTo7t27MDc3Vy6Hh4dLmIaIiKhyYHGjRw0aNMCqVasAAOvXr0efPn0kTkRERGT8WNzoUWhoKFxcXGBlZYX27dtLHYeIiKhS4B2K9ax58+a4desWqlatKnUUIiKiSoEjN3rw448/YtCgQRg0aBAyMjJY2BAREZUjFjd68Mcff2DNmjVYs2YNHjx4IHUcIiKiSoXFDRERERkVFjdERERkVFjcEBERkVFhcaMHq1evljoCERFRpcXiRsf++usvPH78WLlsYsJDTEREVJ74zatjycnJKsuNGzeWKAkREVHlxOJGjz7//HOYmppKHYOIiKhS4R2KdczMzEz55G8rKytpwxAREVVCLG50rGvXrrxxHxERkYR4WoqIiIiMCosbIiIiMiosboiIiMiosLjRsbi4OAwdOhRDhw7FL7/8InUcIiKiSocTinXs5s2biImJAQDUq1cPb775prSBiIiIKhmO3OhQVlYWli9fLnUMIiKiSo3FjQ599tln+PXXX6WOQUREVKmxuNGh+Ph4leUOHTpIlISIiKjy4pwbPTl//jyaNGkidQwiIqJKhyM3elKrVi2pIxAREVVKLG6IiIjIqPC0FBGRERFCoKCgAIWFhVJHIdKamZkZTE1NX3k/LG50aP78+Xj48CEAPhGciMpfXl4eUlNTkZ2dLXUUojKRyWRwc3NDlSpVXmk/LG50qFGjRlJHIKJKqqioCElJSTA1NYWrqysUCgVkMpnUsYg0JoTA3bt3cevWLdSrV++VRnBY3BARGYG8vDwUFRXB3d2dI8dksKpXr47r168jPz//lYobTigmIjIiJib83zoZLl2NNnLkRoeOHDmCO3fuAADeeustmJmZSZyIiIio8mFxo0Off/45Dhw4AADIzMxkcUNERCQBjl/q0OPHj5U/m5ubS5iEiIjK6vfff0eDBg1QVFQkdRSj06dPH8ybN0/v78PiRofS09MBAHZ2dlAoFBKnISIyDEOGDIFMJoNMJoNcLoeHhwdGjx6NBw8eqPU9ceIEQkNDUbVqVVhYWKBJkyb45ptvir2vz8GDBxEaGopq1arBysoKDRs2xMcff4yUlJRS80yaNAlTp0416vlLS5cuhZeXFywsLODn54ejR4+W2v/539Hzr+evEm7fvn2xfbp166bsM23aNMycOROZmZl6+2wAixudunv3LoCns72JiEhzXbt2RWpqKq5fv44VK1Zg165dGDNmjEqfbdu2oV27dnBzc8PBgwfx999/Y/z48Zg5cyb69esHIYSy7/Lly9GpUye4uLhgy5YtiI+Px7Jly5CRkYFvvvmmxBwnTpxAQkIC3nnnnVf6PHl5ea+0vT5t3LgREyZMwNSpU3Hu3DkEBQUhJCQEycnJJW6zcOFCpKamKl83b96Eg4ODynHaunWrSp+LFy/C1NRUpU/Tpk1Rq1YtrF27Vq+fEaKSycjIEABERkaGTvebl5cnAAgAIjAwUKf7JiJ6mSdPnoj4+Hjx5MkTqaNobfDgweKtt95SaYuIiBAODg7K5UePHolq1aqJ3r17q22/c+dOAUBs2LBBCCHEzZs3hUKhEBMmTCj2/R48eFBilg8//FD06dNHpe2ff/4RPXr0EE5OTsLa2lr4+/uL2NhYlT6enp7i888/F4MHDxa2trZi0KBBQgghjh8/LoKCgoSFhYVwc3MTH374oXj06JFyuzVr1gg/Pz9RpUoV4ezsLN59913x77//lphPF1q2bCnCw8NV2ho0aCAmT56s8T62bdsmZDKZuH79eol95s+fL2xsbFQ+rxBCTJ8+XQQFBRW7TWl/x9p8f3PkRkfu3bun/NnR0VHCJEREqubNmwc3N7eXvnr06KG2bY8ePTTaVpfzKBITE7F3716VizL279+Pe/fu4ZNPPlHr3717d3h7e2P9+vUAgM2bNyMvLw+TJk0qdv/29vYlvveRI0fg7++v0vbo0SOEhobiwIEDOHfuHIKDg9G9e3e1kY6vv/4ajRs3xtmzZ/HZZ5/hwoULCA4ORu/evXH+/Hls3LgRx44dw9ixY5Xb5OXl4fPPP8dff/2F7du3IykpCUOGDCn1+ISHh6NKlSqlvkoahcnLy8PZs2fRpUsXlfYuXbrgxIkTpb7v81auXIlOnTrB09Oz1D79+vWDtbW1SnvLli1x6tQp5Obmavx+Wntp+aNnS5YsEbVq1RLm5uaiRYsW4siRI6X2P3TokGjRooUwNzcXXl5eIjo6Wqv309fIzfnz55UjN8OGDdPpvomIXqa0f/FGRkYq//9U2qtVq1Zq27Zq1UqjbSMjI8ucffDgwcLU1FRYW1sLCwsL5T7nzZun7DN79mwBoMRRlx49eggfHx8hhBCjR48Wtra2ZcpiZ2cnVq9e/dJ+DRs2FN9++61y2dPTU/Ts2VOlz8CBA8WoUaNU2o4ePSpMTExKHGE7deqUACCysrJKfO9///1XJCQklPrKz88vdtuUlBQBQBw/flylfebMmcLb27vUz/zM7du3hampqdi4cWOJff744w8BQPzxxx9q6/766y8BoNhRH12N3Eh6Kfiz835Lly5FmzZtsHz5coSEhCA+Ph4eHh5q/ZOSkhAaGoqRI0fip59+wvHjxzFmzBhUr14db7/9tgSf4H+eTSYGOHJDRBWLra0tatas+dJ+xc0XrF69ukbb2tralinbMx06dEB0dDSys7OxYsUKXL16FR9++KFaP/HcvJoX25/dAO75n7X15MkTWFhYqLQ9fvwYUVFR+OWXX3D79m0UFBTgyZMnaqMjL474nD17Fv/884/K/BIhhPJRGT4+Pjh37hymT5+OuLg43L9/X3mFVnJyMho2bFhsRicnJzg5OZXp8z3z4vHR5pjFxMTA3t4ePXv2LLHPypUr0bhxY7Rs2VJtnaWlJQDo9RlokhY38+bNw/DhwzFixAgAwIIFC7Bv3z5ER0dj1qxZav2XLVsGDw8PLFiwAADg4+ODM2fOYO7cuZIXN88mEwOcUExEFUtERAQiIiLKtO3OnTt1nKZ41tbWqFu3LgBg0aJF6NChA6KiovD5558DALy9vQEAly9fRuvWrdW2//vvv5XFgLe3NzIyMpCamooaNWpolcPR0VHtKq2JEydi3759mDt3LurWrQtLS0v06dNHbdLwi6dfioqK8P7772PcuHFq7+Ph4YHHjx+jS5cu6NKlC3766SdUr14dycnJCA4OLnVCcnh4OH766adSP0dJgwSOjo4wNTVFWlqaSvudO3fg7Oxc6j6Bp0XQDz/8gIEDB5Z4VXB2djY2bNiAGTNmFLv+/v37APT7XSnZnJuynPc7efKkWv/g4GCcOXMG+fn5xW6Tm5uLzMxMlZc+CCHg5uYGc3NzjtwQEb2iyMhIzJ07F7dv3wbw9LvBwcGh2Cuddu7ciYSEBLz77rsAnt5LRaFQYM6cOcXu++HDhyW+r6+vL+Lj41Xajh49iiFDhqBXr15o0qQJXFxccP369Zd+hhYtWuDSpUuoW7eu2kuhUODvv/9Geno6Zs+ejaCgIDRo0EB5l/vSzJgxA3FxcaW+XF1di91WoVDAz88PsbGxKu2xsbHFFo0vOnz4MP755x8MHz68xD6bNm1Cbm4u3nvvvWLXX7x4EW5ubnr9rpRs5CY9PR2FhYVqlaKzs7NaRflMWlpasf0LCgqQnp5ebIU+a9YsREVF6S54CcLCwhAWFgYhRInDpkREpJn27dujUaNG+PLLL7F48WJYW1tj+fLl6NevH0aNGoWxY8fC1tYWv/32GyZOnIg+ffqgb9++AAB3d3fMnz8fY8eORWZmJgYNGoRatWrh1q1bWL16NapUqVLi5eDBwcH48ccfVdrq1q2LrVu3onv37pDJZPjss880usHfp59+ilatWuGDDz7AyJEjYW1tjcuXLyM2NhbffvstPDw8oFAo8O233yI8PBwXL15UjlSV5lVPS0VERGDgwIHw9/dHYGAgvvvuOyQnJyM8PFzZZ8qUKUhJScHq1atVtl25ciUCAgLQuHHjEve/cuVK9OzZE9WqVSt2/dGjR9UGKnRN8qultD3vV1z/4tqfmTJlCjIyMpSvmzdvvmLi0slkMqO+8RMRUXmJiIjA999/r/z/dp8+fXDw4EHcvHkTr7/+OurXr4958+Zh6tSp2LBhg8r3wJgxY7B//36kpKSgV69eaNCgAUaMGAFbW9tir7h65r333kN8fDyuXLmibJs/fz6qVq2K1q1bo3v37ggODkaLFi1emr9p06Y4fPgwEhISEBQUBF9fX3z22WfKf4hXr14dMTEx2Lx5Mxo2bIjZs2dj7ty5ZT1cGgsLC8OCBQswY8YMNG/eHEeOHMHu3btVrnxKTU1Vm1OUkZGBLVu2lDpqc/XqVRw7dqzEPjk5Odi2bRtGjhypmw9TApmQaJghLy8PVlZW2Lx5M3r16qVsHz9+POLi4nD48GG1bV5//XX4+vpi4cKFyrZt27ahb9++yM7O1uhZTpmZmbCzs0NGRsYrT4AjIqoocnJykJSUpLzrLJXdpEmTkJGRgeXLl0sdxegsWbIEO3bswP79+4tdX9rfsTbf35INMZTlvF9gYKBa//3798Pf358PqSQiIp2YOnUqPD09i32kA70aMzMzfPvtt3p/H0nPn0RERGDFihX44YcfcPnyZXz00Ucq5/2mTJmCQYMGKfuHh4fjxo0biIiIwOXLl/HDDz9g5cqVpQ4xEhERacPOzg7/+c9/YGpqKnUUozNq1CjUr19f7+8j6aXgYWFhuHfvHmbMmIHU1FQ0btxY5bzfi+f8vLy8sHv3bnz00UdYsmQJXF1dsWjRIskvAyciIqKKQ7I5N1LhnBsiMkacc0PGwODn3BARke5Vsn+vkpHR1d8vixsiIiPw7KIKfd7Snkjfnt2Z+VXnO0k654aIiHTD1NQU9vb2yjvcWllZlfn5SkRSKCoqwt27d2FlZQW5/NXKExY3RERGwsXFBQA0uoU/UUVkYmICDw+PVy7MWdwQERkJmUyGGjVqwMnJqcTn7RFVZAqFQid3+WdxQ0RkZExNTXmPFqrUOKGYiIiIjAqLGyIiIjIqLG6IiIjIqFS6OTfPbhCUmZkpcRIiIiLS1LPvbU1u9FfpipusrCwAgLu7u8RJiIiISFtZWVmws7MrtU+le7ZUUVERbt++DRsbG53f4CozMxPu7u64efMmn1ulRzzO5YPHuXzwOJcfHuvyoa/jLIRAVlYWXF1dX3q5eKUbuTExMYGbm5te38PW1pb/4ZQDHufyweNcPnicyw+PdfnQx3F+2YjNM5xQTEREREaFxQ0REREZFRY3OmRubo7IyEiYm5tLHcWo8TiXDx7n8sHjXH54rMtHRTjOlW5CMRERERk3jtwQERGRUWFxQ0REREaFxQ0REREZFRY3REREZFRY3Ghp6dKl8PLygoWFBfz8/HD06NFS+x8+fBh+fn6wsLBA7dq1sWzZsnJKati0Oc5bt25F586dUb16ddja2iIwMBD79u0rx7SGS9u/52eOHz8OuVyO5s2b6zegkdD2OOfm5mLq1Knw9PSEubk56tSpgx9++KGc0houbY/z2rVr0axZM1hZWaFGjRoYOnQo7t27V05pDdORI0fQvXt3uLq6QiaTYfv27S/dRpLvQUEa27BhgzAzMxPff/+9iI+PF+PHjxfW1tbixo0bxfZPTEwUVlZWYvz48SI+Pl58//33wszMTPz888/lnNywaHucx48fL7766itx6tQpcfXqVTFlyhRhZmYm/vzzz3JObli0Pc7PPHz4UNSuXVt06dJFNGvWrHzCGrCyHOcePXqIgIAAERsbK5KSksQff/whjh8/Xo6pDY+2x/no0aPCxMRELFy4UCQmJoqjR4+KRo0aiZ49e5ZzcsOye/duMXXqVLFlyxYBQGzbtq3U/lJ9D7K40ULLli1FeHi4SluDBg3E5MmTi+0/adIk0aBBA5W2999/X7Rq1UpvGY2Btse5OA0bNhRRUVG6jmZUynqcw8LCxP/93/+JyMhIFjca0PY479mzR9jZ2Yl79+6VRzyjoe1x/vrrr0Xt2rVV2hYtWiTc3Nz0ltHYaFLcSPU9yNNSGsrLy8PZs2fRpUsXlfYuXbrgxIkTxW5z8uRJtf7BwcE4c+YM8vPz9ZbVkJXlOL+oqKgIWVlZcHBw0EdEo1DW47xq1Spcu3YNkZGR+o5oFMpynHfu3Al/f3/MmTMHNWvWhLe3Nz755BM8efKkPCIbpLIc59atW+PWrVvYvXs3hBD4999/8fPPP6Nbt27lEbnSkOp7sNI9OLOs0tPTUVhYCGdnZ5V2Z2dnpKWlFbtNWlpasf0LCgqQnp6OGjVq6C2voSrLcX7RN998g8ePH6Nv3776iGgUynKcExISMHnyZBw9ehRyOf/XoYmyHOfExEQcO3YMFhYW2LZtG9LT0zFmzBjcv3+f825KUJbj3Lp1a6xduxZhYWHIyclBQUEBevTogW+//bY8IlcaUn0PcuRGSzKZTGVZCKHW9rL+xbWTKm2P8zPr16/H9OnTsXHjRjg5OekrntHQ9DgXFhaif//+iIqKgre3d3nFMxra/D0XFRVBJpNh7dq1aNmyJUJDQzFv3jzExMRw9OYltDnO8fHxGDduHKZNm4azZ89i7969SEpKQnh4eHlErVSk+B7kP7805OjoCFNTU7V/Bdy5c0etKn3GxcWl2P5yuRzVqlXTW1ZDVpbj/MzGjRsxfPhwbN68GZ06ddJnTIOn7XHOysrCmTNncO7cOYwdOxbA0y9hIQTkcjn279+Pjh07lkt2Q1KWv+caNWqgZs2asLOzU7b5+PhACIFbt26hXr16es1siMpynGfNmoU2bdpg4sSJAICmTZvC2toaQUFB+OKLLziyriNSfQ9y5EZDCoUCfn5+iI2NVWmPjY1F69ati90mMDBQrf/+/fvh7+8PMzMzvWU1ZGU5zsDTEZshQ4Zg3bp1PGeuAW2Ps62tLS5cuIC4uDjlKzw8HPXr10dcXBwCAgLKK7pBKcvfc5s2bXD79m08evRI2Xb16lWYmJjAzc1Nr3kNVVmOc3Z2NkxMVL8CTU1NAfxvZIFenWTfg3qdrmxknl1quHLlShEfHy8mTJggrK2txfXr14UQQkyePFkMHDhQ2f/ZJXAfffSRiI+PFytXruSl4BrQ9jivW7dOyOVysWTJEpGamqp8PXz4UKqPYBC0Pc4v4tVSmtH2OGdlZQk3NzfRp08fcenSJXH48GFRr149MWLECKk+gkHQ9jivWrVKyOVysXTpUnHt2jVx7Ngx4e/vL1q2bCnVRzAIWVlZ4ty5c+LcuXMCgJg3b544d+6c8pL7ivI9yOJGS0uWLBGenp5CoVCIFi1aiMOHDyvXDR48WLRr106l/6FDh4Svr69QKBSiVq1aIjo6upwTGyZtjnO7du0EALXX4MGDyz+4gdH27/l5LG40p+1xvnz5sujUqZOwtLQUbm5uIiIiQmRnZ5dzasOj7XFetGiRaNiwobC0tBQ1atQQAwYMELdu3Srn1Ibl4MGDpf7/tqJ8D8qE4PgbERERGQ/OuSEiIiKjwuKGiIiIjAqLGyIiIjIqLG6IiIjIqLC4ISIiIqPC4oaIiIiMCosbIiIiMiosbohIRUxMDOzt7aWOUWa1atXCggULSu0zffp0NG/evFzyEFH5Y3FDZISGDBkCmUym9vrnn3+kjoaYmBiVTDVq1EDfvn2RlJSkk/2fPn0ao0aNUi7LZDJs375dpc8nn3yC3377TSfvV5IXP6ezszO6d++OS5cuab0fQy42iaTA4obISHXt2hWpqakqLy8vL6ljAXj6IM7U1FTcvn0b69atQ1xcHHr06IHCwsJX3nf16tVhZWVVap8qVaro9YnEzzz/OX/99Vc8fvwY3bp1Q15ent7fm6gyY3FDZKTMzc3h4uKi8jI1NcW8efPQpEkTWFtbw93dHWPGjFF5AvWL/vrrL3To0AE2NjawtbWFn58fzpw5o1x/4sQJvP7667C0tIS7uzvGjRuHx48fl5pNJpPBxcUFNWrUQIcOHRAZGYmLFy8qR5aio6NRp04dKBQK1K9fH2vWrFHZfvr06fDw8IC5uTlcXV0xbtw45brnT0vVqlULANCrVy/IZDLl8vOnpfbt2wcLCws8fPhQ5T3GjRuHdu3a6exz+vv746OPPsKNGzdw5coVZZ/Sfh+HDh3C0KFDkZGRoRwBmj59OgAgLy8PkyZNQs2aNWFtbY2AgAAcOnSo1DxElQWLG6JKxsTEBIsWLcLFixfx448/4vfff8ekSZNK7D9gwAC4ubnh9OnTOHv2LCZPngwzMzMAwIULFxAcHIzevXvj/Pnz2LhxI44dO4axY8dqlcnS0hIAkJ+fj23btmH8+PH4+OOPcfHiRbz//vsYOnQoDh48CAD4+eefMX/+fCxfvhwJCQnYvn07mjRpUux+T58+DQBYtWoVUlNTlcvP69SpE+zt7bFlyxZlW2FhITZt2oQBAwbo7HM+fPgQ69atAwDl8QNK/320bt0aCxYsUI4Apaam4pNPPgEADB06FMePH8eGDRtw/vx5vPPOO+jatSsSEhI0zkRktPT+aE4iKneDBw8WpqamwtraWvnq06dPsX03bdokqlWrplxetWqVsLOzUy7b2NiImJiYYrcdOHCgGDVqlErb0aNHhYmJiXjy5Emx27y4/5s3b4pWrVoJNzc3kZubK1q3bi1Gjhypss0777wjQkNDhRBCfPPNN8Lb21vk5eUVu39PT08xf/585TIAsW3bNpU+Lz7RfNy4caJjx47K5X379gmFQiHu37//Sp8TgLC2thZWVlbKpyf36NGj2P7PvOz3IYQQ//zzj5DJZCIlJUWl/Y033hBTpkwpdf9ElYFc2tKKiPSlQ4cOiI6OVi5bW1sDAA4ePIgvv/wS8fHxyMzMREFBAXJycvD48WNln+dFRERgxIgRWLNmDTp16oR33nkHderUAQCcPXsW//zzD9auXavsL4RAUVERkpKS4OPjU2y2jIwMVKlSBUIIZGdno0WLFti6dSsUCgUuX76sMiEYANq0aYOFCxcCAN555x0sWLAAtWvXRteuXREaGoru3btDLi/7/84GDBiAwMBA3L59G66urli7di1CQ0NRtWrVV/qcNjY2+PPPP1FQUIDDhw/j66+/xrJly1T6aPv7AIA///wTQgh4e3urtOfm5pbLXCKiio7FDZGRsra2Rt26dVXabty4gdDQUISHh+Pzzz+Hg4MDjh07huHDhyM/P7/Y/UyfPh39+/fHr7/+ij179iAyMhIbNmxAr169UFRUhPfff19lzsszHh4eJWZ79qVvYmICZ2dntS9xmUymsiyEULa5u7vjypUriI2NxYEDBzBmzBh8/fXXOHz4sMrpHm20bNkSderUwYYNGzB69Ghs27YNq1atUq4v6+c0MTFR/g4aNGiAtLQ0hIWF4ciRIwDK9vt4lsfU1BRnz56FqampyroqVapo9dmJjBGLG6JK5MyZMygoKMA333wDE5OnU+42bdr00u28vb3h7e2Njz76CO+++y5WrVqFXr16oUWLFrh06ZJaEfUyz3/pv8jHxwfHjh3DoEGDlG0nTpxQGR2xtLREjx490KNHD3zwwQdo0KABLly4gBYtWqjtz8zMTKOrsPr374+1a9fCzc0NJiYm6Natm3JdWT/niz766CPMmzcP27ZtQ69evTT6fSgUCrX8vr6+KCwsxJ07dxAUFPRKmYiMEScUE1UiderUQUFBAb799lskJiZizZo1aqdJnvfkyROMHTsWhw4dwo0bN3D8+HGcPn1aWWh8+umnOHnyJD744APExcUhISEBO3fuxIcffljmjBMnTkRMTAyWLVuGhIQEzJs3D1u3blVOpI2JicHKlStx8eJF5WewtLSEp6dnsfurVasWfvvtN6SlpeHBgwclvu+AAQPw559/YubMmejTpw8sLCyU63T1OW1tbTFixAhERkZCCKHR76NWrVp49OgRfvvtN6SnpyM7Oxve3t4YMGAABg0ahK1btyIpKQmnT5/GV199hd27d2uVicgoSTnhh4j0Y/DgweKtt94qdt28efNEjRo1hKWlpQgODharV68WAMSDBw+EEKoTWHNzc0W/fv2Eu7u7UCgUwtXVVYwdO1ZlEu2pU6dE586dRZUqVYS1tbVo2rSpmDlzZonZipsg+6KlS5eK2rVrCzMzM+Ht7S1Wr16tXLdt2zYREBAgbG1thbW1tWjVqpU4cOCAcv2LE4p37twp6tatK+RyufD09BRCqE8ofua1114TAMTvv/+utk5Xn/PGjRtCLpeLjRs3CiFe/vsQQojw8HBRrVo1AUBERkYKIYTIy8sT06ZNE7Vq1RJmZmbCxcVF9OrVS5w/f77ETESVhUwIIaQtr4iIiIh0h6eliIiIyKiwuCEiIiKjwuKGiIiIjAqLGyIiIjIqLG6IiIjIqLC4ISIiIqPC4oaIiIiMCosbIiIiMiosboiIiMiosLghIiIio8LihoiIiIwKixsiIiIyKv8PVQ2qZrQIwxEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.7693331377315786"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict_pro_list, AUC = get_roc_auc(model,test_X,test_label_list)\n",
    "AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "8d1c4695",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 统计详情\n",
    "evaluation_now = list(eval_model(test_label_list, predict_label_list, labelEncoder.classes_).iloc[2,[1,2,3]].values)\n",
    "evaluation_now.append(score_r)\n",
    "evaluation_now.append(AUC)\n",
    "evaluation_ls.append(evaluation_now)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "494e50a1",
   "metadata": {},
   "source": [
    "#### 2.4RandomForestClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "0b0bc609",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "47fef70b",
   "metadata": {},
   "outputs": [],
   "source": [
    "model = RandomForestClassifier(random_state=0,n_estimators=50)\n",
    "\n",
    "model.fit(train_X,train_y) \n",
    "score_r = model.score(test_X,test_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "981a6c4b",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "25892304",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Label</th>\n",
       "      <th>Precision</th>\n",
       "      <th>Recall</th>\n",
       "      <th>F1</th>\n",
       "      <th>Support</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.925466</td>\n",
       "      <td>0.943038</td>\n",
       "      <td>0.934169</td>\n",
       "      <td>632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0.741007</td>\n",
       "      <td>0.682119</td>\n",
       "      <td>0.710345</td>\n",
       "      <td>151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>总体</td>\n",
       "      <td>0.889893</td>\n",
       "      <td>0.892720</td>\n",
       "      <td>0.891005</td>\n",
       "      <td>783</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Label  Precision    Recall        F1  Support\n",
       "0     0   0.925466  0.943038  0.934169      632\n",
       "1     1   0.741007  0.682119  0.710345      151\n",
       "2    总体   0.889893  0.892720  0.891005      783"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_label_list = test_y\n",
    "predict_label_list = model.predict(test_X)\n",
    "eval_model(test_label_list, predict_label_list, labelEncoder.classes_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "72c0bcbe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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RESkVxhutOTAgQPo27cv+vbti+joaKnLISIiMli8WkpL/v77b+zfvx8AMHToUImrISIiMlwcuSEiIiK9wnBDREREeoXhhoiIiPQKww0RERHpFYYbIiIi0isMN0RERKRXGG6IiIhIrzDcEBERkV7hTfy0pEWLFggODgYANGzYUOJqiIiIDJdMCCGkLqI6afLIdCIiIqoZNPn95mkpIiIi0isMN0RERKRXGG6IiIhIrzDcaMnSpUthYWEBCwsL7NmzR+pyiIiIDBavltKSoqIi5ObmKt4TERGRNDhyQ0RERHqF4YaIiIj0CsMNERER6RWGGyIiItIrDDdERESkVxhuiIiISK8w3BAREZFeYbghIiIivcKb+GlJ79694eXlBQB44403JK6GiIjIcDHcaEmjRo3QqFEjqcsgIiIyeJKfllq5ciW8vLxgbm4OX19fREVFldk3PDwc3bt3h729PaytreHv749ffvmlGqslIiKimk7ScBMWFoZp06Zhzpw5iImJQYcOHdCzZ0/ExcWV2v/06dPo3r07IiIicOnSJXTp0gW9e/dGTExMNVdORERENZVMCCGk2nmbNm3QqlUrrFq1StHm4+ODvn37YsGCBWpto2nTphg0aBA+++wztfqnp6fDxsYGaWlpsLa2rlTdpbl//z7+/vtvAM++g4ODg9a2TUREZOg0+f2WbOQmPz8fly5dQkBAgFJ7QEAAzp49q9Y2iouLkZGRgbp161ZFiRr5+eef0blzZ3Tu3BknT56UuhwiIiKDJdmE4qSkJBQVFcHR0VGp3dHREYmJiWptY/HixcjKysLAgQPL7JOXl4e8vDzFcnp6euUKJiIiIp0g+YRimUymtCyEUGkrzY4dOzBv3jyEhYWVewpowYIFsLGxUbzc3d1fumYiIiKquSQLN3Z2djA2NlYZpXn8+LHKaM6LwsLCMGbMGOzatQvdunUrt+/s2bORlpameMXHx7907URERFRzSRZu5HI5fH19ERkZqdQeGRmJdu3albnejh07MGrUKGzfvh29evWqcD9mZmawtrZWehEREZH+kvQmfiEhIRg+fDj8/Pzg7++PtWvXIi4uDsHBwQCejbo8ePAAW7ZsAfAs2IwYMQI//PAD2rZtqxj1sbCwgI2NjWTfg4iIiGoOScPNoEGDkJycjM8//xwJCQlo1qwZIiIi4OnpCQBISEhQuufN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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.9198486880710872"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict_pro_list, AUC = get_roc_auc(model,test_X,test_label_list)\n",
    "AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "90b40683",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "ba537fbc",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 统计详情\n",
    "evaluation_now = list(eval_model(test_label_list, predict_label_list, labelEncoder.classes_).iloc[2,[1,2,3]].values)\n",
    "evaluation_now.append(score_r)\n",
    "evaluation_now.append(AUC)\n",
    "evaluation_ls.append(evaluation_now)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21e8f4c5",
   "metadata": {},
   "source": [
    "#### 2.5SVM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "d181b8f4",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.svm import SVC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "8e3f05a4",
   "metadata": {},
   "outputs": [],
   "source": [
    "model = SVC(kernel='poly', probability=True,random_state=0)\n",
    "\n",
    "model.fit(train_X,train_y) \n",
    "score_r = model.score(test_X,test_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "b93c1ab3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Label</th>\n",
       "      <th>Precision</th>\n",
       "      <th>Recall</th>\n",
       "      <th>F1</th>\n",
       "      <th>Support</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.885759</td>\n",
       "      <td>0.895570</td>\n",
       "      <td>0.890637</td>\n",
       "      <td>632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0.541667</td>\n",
       "      <td>0.516556</td>\n",
       "      <td>0.528814</td>\n",
       "      <td>151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>总体</td>\n",
       "      <td>0.819401</td>\n",
       "      <td>0.822478</td>\n",
       "      <td>0.820860</td>\n",
       "      <td>783</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Label  Precision    Recall        F1  Support\n",
       "0     0   0.885759  0.895570  0.890637      632\n",
       "1     1   0.541667  0.516556  0.528814      151\n",
       "2    总体   0.819401  0.822478  0.820860      783"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_label_list = test_y\n",
    "predict_label_list = model.predict(test_X)\n",
    "eval_model(test_label_list, predict_label_list, labelEncoder.classes_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "da36d20c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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JEpkePhsKSIiojL04lRXV1dXrFy5Ej179pQwkeHhhGIiIqIylJeXh7y8PACAXC6HkRHHGTTBCcVERERl6J9//kFgYKBGfX///XdUq1ZNv4EqORY3REREWjhz5gyys7NhYmICLy8vAM/uKPzy/WqKkpubq894BBY3RERUzu3duxf79u0rsd+nn34KGxsb1fLx48exffv2EtezsbHBp59+qta2atUqXL58udD+y5cvR1paGuzt7XHv3r0St09lj3NuiIio3IqLi0PdunWLfDL2i65fv446deqolpcsWYJx48aVuF69evVw9epVtbZevXrh999/L3Y9BwcH3L17F8CzScL5+fklfhYAGBkZQSaTadSX/h/n3BCRwcvKysLBgwdhbGyMbt26qb33119/ITExscRtuLm5oXnz5mptO3bs0Ogg1bp1a9jb26uWk5KScOzYMY2y9+rVC8bGxqrlixcvFji4FsbW1havv/66WtvBgweRkpJS4rqNGjWCu7u7ajkrKwt//vmnRnk7duyoNkckPj4eZ86cKXE9hUIBf39/tbaoqCjcuXOnxHWdnJzg5eWF69eva1TYSOHFK5xkMpna75SkxZEbIqqQunTpggMHDqBu3bq4du2a2nsBAQHYuXNnidsYM2YMli5dqtZmamqK7OzsEtfdvn07AgICVMuHDh1Cp06dNMqemZkJU1NT1fK0adPwzTfflLhehw4dcOjQIbW2li1bIjY2tsR1586di2nTpqmW79+/Dzs7O43ynjlzBi1btlQtr1mzBkOHDi1xvRo1auD+/ftqbYMHD8batWtLXHfw4MFYs2YNMjMzcf/+fZw9exYAip2I6+3tDXNzc9XyvXv3cP369RI/y8zMDK+99ppa28WLF/Hw4cMi16latSpatGjBEZgyxJEbIiqXhBB48OBBsf8St7S0VDtA5eTkFHqQOXz4MABodPCiisvMzAzOzs5wdnbWel0HBwc4ODiU6nMbN25cqvWofGBxQ0RlIicnBz4+PoiOji623+rVqzFkyBDV8oULF+Dp6anVZw0bNgxt27Ytsd+LoxHPzZkzR3UPkuI0bNhQbblOnToajb4AKHD64o033tDo0mAnJ6cCbePHjy8wOlKY9u3bqy0rlUqN875cILRs2VKjdQt74GP//v3RtGnTEtdlcUGvgqeliKhMnDhxQqOC4+XiJiYmptjiplevXtixY4dOMhJR+cXTUkSksUuXLmHMmDG4fft2kX32798PV1dX1fLatWsxY8aMErft5OSkmiPy4r096tWrV+S/zF8enbCysirymTvW1taYPHlyiTmIqHJhcUNUyS1ZskQ1f6UoOTk5asupqam4ceNGidt+cWC4QYMGWLNmDYBnV+5oeqqpTp062LZtm0Z9iYgAFjdElV5qaqrq5+rVq0MuL/i/hZfniJibm6NGjRolbvvFG6rZ2dlh8ODBr5CUiEgznHNDVMnt2bMHgwcPRlJSEuLi4tROPxERlRecc0NUySUmJmLnzp0FTie9yMLCAkOGDIGfnx+MjIzQvn17uLi4lGFKIiL9YHFDZGDy8/Px+uuvl3j/F1dXV9VVSadPn4aTkxNvSEZEBoHFDVE5cPv2bSQnJ6NatWoFTgtduHBBo6cIOzs7w9raGmlpaVrf2K40N0gjIiqvWNwQSWzp0qUYO3YsAGDAgAFYt26d2vvdunXT6DlJq1atwvDhwyGXy9GjRw+cO3cOcrkcX331VaH9lUrlq4cnIiqHWNwQSWzLli063Z5SqcSuXbt0uk0iooqExQ1VWs2bN8eVK1dK7Pfdd9+pRlaAZ09EbtCggUafERsbq9Z35cqVatsCnj2d+bnCHrw4dOhQtcu1i6JpJiIiQ8fihiqtrKwsZGZmltjv5ecMCSE0Wu9535e3VdS6VatWxciRIwu0f/vttxp9FhERPcPihiqNBw8eICQkBKGhoQAADw8PmJmZlbiera2t2rKJiQmaN2+u0WeampqqLdvY2BS6rkKhwEcffVToDfSIiEg7vIkfVRpz587FvHnzkJycjKdPn/L3T0RUgfAmflRpPX78GAsWLCj0vT179iAvLw+jRo3C6NGj0bp16zJOR0REZYEjN2RQ4uPjNbrL7l9//cXihoioAtHm+G1URpmI9CInJwcHDhzAmTNnNF7Hzs4OzZo102MqIiKSEk9LUYXWq1cv7NmzB3379sWGDRtQs2ZNREZGFtlfJpOhdevWMDc3L8OURERUlnhaiiqs/Px8GBsbq5Yr2Z8yEVGlwtNSZPD+++8/uLu7Sx2DiIjKIRY3VCH98ccfag+H9Pf3lzANERGVJyxuqMLZv38/Ro0apdb2zTffSJSGiIjKGxY3VOF88cUXassRERFo2rSpRGmIiKi8YXFDFU5KSorq565du6Jnz54SpiEiovKGl4JThfPTTz/h6dOnMDY2RpcuXaSOQ0RE5QyLG6pw2rZtK3UEIiIqx3haioiIiAwKixuqMPbt2wc3Nzf4+fnh119/lToOERGVUzwtRRXC+vXr8d577wEAbt68CW9vb4kTERFRecWRG6oQNm7cqLbs6uoqTRAiIir3JC9uli1bBjc3N5iZmcHLywtHjx4ttv/atWvRvHlzVKlSBfb29hgxYgSSk5PLKC2VpevXr+O1115DtWrVsGPHDlX7pEmTMHjwYAmTERFReSZpcRMREYGJEydi+vTpiImJQbt27dCjRw/Ex8cX2v/YsWMYOnQoRo0ahYsXL2Ljxo04ffo0AgMDyzg5lYU1a9YgKioKKSkpyM3NBQDI5XLMmjWLT/UmIqIiSVrchIaGYtSoUQgMDETDhg2xcOFCODk5ISwsrND+f/31F1xdXTF+/Hi4ubnh9ddfx4cffoioqKgyTk5lIT09XW25SZMmmD9/Pp/mTkRExZJsQnF2djaio6MxdepUtfbu3bvjxIkTha7j6+uL6dOnY9euXejRowfu37+PTZs2FXuH2qysLGRlZamWU1NTdfMFSO9GjhyJjh07AgDatGkDa2traQMREVGFIFlxk5SUhLy8PNjZ2am129nZITExsdB1fH19sXbtWvTv3x+ZmZnIzc1FQEAAFi9eXOTnhISEYPbs2TrNTmXDw8MDHh4eUscgIqIKRvIJxTKZTG1ZCFGg7blLly5h/PjxmDFjBqKjo7F7927ExcUhKCioyO1PmzYNKSkpqtft27d1mp+IiIjKF8lGbmxtbWFsbFxglOb+/fsFRnOeCwkJQdu2bTF58mQAQLNmzaBUKtGuXTt8/fXXsLe3L7COqakpTE1Ndf8FSO9SU1Nx48YNtGjRQuooRERUgUg2cqNQKODl5YXIyEi19sjISPj6+ha6Tnp6OoyM1CMbGxsDeDbiQ4YjLS0N1tbWOHDgACIjI/Ho0SOpIxERUQUh6R2Kg4ODMWTIEHh7e8PHxwc//fQT4uPjVaeZpk2bhrt372L16tUAgF69euH9999HWFgY/Pz8kJCQgIkTJ6JVq1ZwcHCQ8quQjkVHRyMvLw8ff/wxAODu3buoXr26xKmIiKgikLS46d+/P5KTk/Hll18iISEBTZo0wa5du+Di4gIASEhIULvnzfDhw5GWloYlS5bg448/RrVq1dC5c2d8++23Un0FKgNt27Zl8UpERBqTiUp2Pic1NRVWVlZISUnh/VLKsUOHDqFTp04AgKlTpyIkJETiREREJCVtjt98cCaVG3PnzsWGDRsAAE+ePJE4DRERVVQsbqjcuHv3Ls6ePVugnY9aICIibbC4oTJ18eJF/PLLL8jIyFC1TZ06Fc7OzjAxMYGZmZla/wYNGvAhmUREpBXOuaEy1axZM5w/f16tLSoqCl5eXhIlIiKiikCb47fkdyimyuOff/4pUNgQERHpGk9LUZm4ePEimjRpolquW7cuNm7cCODZqSciIiJdYXFDZeLUqVNqy23btkXLli0lSkNERIaMp6WoTLz42Iz27dtj2bJlEqYhIiJDxuKGykS/fv0wdOhQAM+ujlIqlRInIiIiQ8XTUlQmzM3N4ePjg5YtW6J79+5SxyEiIgPG4ob05ubNm/j5558BAK+//rrqgahERET6xNNSpDcRERGYO3cu5s6diwMHDkgdh4iIKgkWN6Q3n332mepnuZyDhEREVDZY3JBeHDp0CPn5+arlvn37SpiGiIgqExY3pHPR0dHo1KmTarlevXrw9PSUMBEREVUmLG5I515+xEK3bt0kSkJERJURixvSq/79+2Px4sVSxyAiokqExQ3pVadOnWBsbCx1DCIiqkR4CQvpXL169TBixAgAfCgmERGVPZkQQkgdoiylpqbCysoKKSkpsLS0lDoOERERaUCb4zdHbkhnnj59ioyMDACApaUlFAqFxImIiKgy4pwb0pmQkBDUqFEDNWrUwNGjR6WOQ0RElRRHbuiVCCEQERGBv//+G8ePH5c6DhEREYsbejUnTpzAe++9V6BdJpNJkIaIiIinpegVXbt2rUCbnZ0dWrduLUEaIiIiFjekQ5988glOnjyJuLg4KJVKqeMQEVElxdNSpDN16tRBmzZtpI5BRESVHEduiIiIyKBw5IZeSfv27bFu3ToAgJeXl8RpiIiIWNzQK3Jzc4Obm5vUMYiIiFR4WoqIiIgMCosbIiIiMigsbqjUkpKSYGtrC1tbWwwaNEjqOERERABKOecmNzcXhw4dwvXr1zFw4EBYWFjg3r17sLS0RNWqVXWdkcqZ5ORkbNmyBffv30dycjIAIC0tTeJUREREz2hd3Ny6dQtvvPEG4uPjkZWVhW7dusHCwgLz5s1DZmYmli9fro+cVI68++67OHz4sNQxiIiICqX1aakJEybA29sbjx49grm5uaq9d+/e2L9/v07DUfkUGxtboM3X17fsgxARERVC65GbY8eO4fjx41AoFGrtLi4uuHv3rs6CUflnb2+P0NBQ2Nvbo3379lLHISIiAlCK4iY/Px95eXkF2u/cuQMLCwudhKKKwcrKCgMGDJA6BhERkRqtT0t169YNCxcuVC3LZDI8efIEM2fOhL+/vy6zEREREWlN65Gb77//Hp06dUKjRo2QmZmJgQMH4urVq7C1tVXdhp8M29SpU5GZmQlbW1upoxARERUgE0IIbVfKyMjA+vXrER0djfz8fHh6emLQoEFqE4zLq9TUVFhZWSElJQWWlpZSxyEiIiINaHP81rq4OXLkCHx9fSGXqw/65Obm4sSJE+V+YimLGyIioopHm+O31nNuOnXqhIcPHxZoT0lJQadOnbTdHFUwT548wZIlS3DmzBmpoxARERVK6+JGCAGZTFagPTk5GUqlUiehqPyaP38+xo0bhwsXLhR61RwREZHUNJ5Q/M477wB4dnXU8OHDYWpqqnovLy8P586d443cKoErV64AAL744gu0a9cObm5uEiciIiJSp3FxY2VlBeDZyI2FhYXa5GGFQoE2bdrg/fff131CKpfi4+OljkBERFQojYubVatWAQBcXV3xySef8BQUERERlUta3+dm5syZ+shBREREpBNaFzcAsGnTJmzYsAHx8fHIzs5We49X0RAREZGUtL5aatGiRRgxYgRq1qyJmJgYtGrVCjY2Nrhx4wZ69Oihj4xUTmRlZfEu1EREVO5pXdwsW7YMP/30E5YsWQKFQoEpU6YgMjIS48ePR0pKij4yUjmxe/duteUqVapIlISIiKhoWhc38fHxqku+zc3NkZaWBgAYMmQI/1Vv4FJTU9GkSRMAQNWqVWFnZydxIiIiooK0Lm5q1aqF5ORkAICLiwv++usvAEBcXBxK8ZgqqkAaNGiAffv2AXh2Mz8iIqLySOvipnPnzti5cycAYNSoUZg0aRK6deuG/v37o3fv3joPSOVHq1atYGtrC1tbW7zxxhtSxyEiIiqU1g/OzM/PR35+vurBmRs2bMCxY8dQr149BAUFQaFQ6CWorvDBma9GCIGsrCyYmZlJHYWIiCoRvT4408jISO2J4P369cOiRYswfvx4PHjwQPu0VK4JIfD+++9DJpPBwcEBR44cYWFDRETlmtbFTWESExMxbtw41KtXT+t1ly1bBjc3N5iZmcHLywtHjx4ttn9WVhamT58OFxcXmJqaom7duvjll19KG51KMHjwYKxYsQIAkJCQgKysLIkTERERFU/j4ubx48cYNGgQatSoAQcHByxatAj5+fmYMWMG6tSpg7/++kvrIiMiIgITJ07E9OnTERMTg3bt2qFHjx7FPreoX79+2L9/P1auXIl///0X69atg4eHh1afS5q5e/cufvvtN7U2V1dXacIQERFpSOM5N2PGjMHOnTvRv39/7N69G5cvX4afnx8yMzMxc+ZMdOjQQesPb926NTw9PREWFqZqa9iwId5++22EhIQU6L97924MGDAAN27cgLW1tdafB3DOjTaWLl2KsWPHqpY3btyIPn36SJiIiIgqK73Mufnjjz+watUqzJ8/Hzt27IAQAu7u7jhw4ECpCpvs7GxER0eje/fuau3du3fHiRMnCl1nx44d8Pb2xrx581C7dm24u7vjk08+QUZGRpGfk5WVhdTUVLUXaWbLli2qn8+ePcvChoiIKgSNny117949NGrUCABQp04dmJmZITAwsNQfnJSUhLy8vAI3grOzs0NiYmKh69y4cQPHjh2DmZkZtm7diqSkJIwZMwYPHz4s8pRYSEgIZs+eXeqcldXy5ctx4MABAEDdunXRtGlTiRMRERFpRuORm/z8fJiYmKiWjY2NoVQqXzmATCZTWxZCFGh7MYNMJsPatWvRqlUr+Pv7IzQ0FOHh4UWO3kybNg0pKSmq1+3bt185s6HLzMzEuHHjVMvvvPNOkb8TIiKi8kbjkRshBIYPHw5TU1MAzw6AQUFBBQqcF09lFMfW1hbGxsYFRmnu379f5G397e3tUbt2bVhZWanaGjZsCCEE7ty5g/r16xdYx9TUVJWZNJOeno7c3FzV8kcffSRhGiIiIu1oPHIzbNgw1KxZE1ZWVrCyssLgwYPh4OCgWn7+0pRCoYCXlxciIyPV2iMjI1XPrnpZ27Ztce/ePTx58kTVduXKFRgZGcHR0VHjz6biVa9eHTk5OUhLS0N2djZcXFykjkRERKQxre9QrEsREREYMmQIli9fDh8fH/z000/4+eefcfHiRbi4uGDatGm4e/cuVq9eDQB48uQJGjZsiDZt2mD27NlISkpCYGAgOnTogJ9//lmjz+TVUkRE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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.832131779696538"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict_pro_list, AUC = get_roc_auc(model,test_X,test_label_list)\n",
    "AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e6121203",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "78933632",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 统计详情\n",
    "evaluation_now = list(eval_model(test_label_list, predict_label_list, labelEncoder.classes_).iloc[1,[1,2,3]].values)\n",
    "evaluation_now.append(score_r)\n",
    "evaluation_now.append(AUC)\n",
    "evaluation_ls.append(evaluation_now)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9939411e",
   "metadata": {},
   "source": [
    "#### 2.6GBDT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "109a14d5",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import GradientBoostingClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "e59a4858",
   "metadata": {},
   "outputs": [],
   "source": [
    "model = GradientBoostingClassifier(n_estimators = 270, random_state=0)\n",
    "\n",
    "model.fit(train_X,train_y) \n",
    "score_r = model.score(test_X,test_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ae73cce7",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "43286ec9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Label</th>\n",
       "      <th>Precision</th>\n",
       "      <th>Recall</th>\n",
       "      <th>F1</th>\n",
       "      <th>Support</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.953560</td>\n",
       "      <td>0.974684</td>\n",
       "      <td>0.964006</td>\n",
       "      <td>632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0.883212</td>\n",
       "      <td>0.801325</td>\n",
       "      <td>0.840278</td>\n",
       "      <td>151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>总体</td>\n",
       "      <td>0.939994</td>\n",
       "      <td>0.941252</td>\n",
       "      <td>0.940145</td>\n",
       "      <td>783</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Label  Precision    Recall        F1  Support\n",
       "0     0   0.953560  0.974684  0.964006      632\n",
       "1     1   0.883212  0.801325  0.840278      151\n",
       "2    总体   0.939994  0.941252  0.940145      783"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_label_list = test_y\n",
    "predict_label_list = model.predict(test_X)\n",
    "eval_model(test_label_list, predict_label_list, labelEncoder.classes_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "b9a614ba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Z8+e1XYYRERENRofSxEREZFOYXJDREREOoWPpdRoy5YtSEpKAgB88cUXMDIy0nJERERENQ+TGzWKiopCTEwMAGD8+PFMboiIiLSgQo+lCgsLcfjwYfz444/Izc0FAKSmpuLp06dqDY6IiIhIVSr33Ny9exc9evRAcnIy8vPz0b17d5ibm2PBggXIy8vDypUrNREnERERkVJU7rmZOHEivL298fjxY5iYmMjK+/Xrhz/++EOtwRERERGpSuWem9jYWJw6dQpSqVSu3MXFBffv31dbYEREREQVoXLPTXFxMYqKihTK7927B3Nzc7UERURERFRRKic33bt3x5IlS2TbEokET58+xezZsxEYGKjO2IiIiIhUpvJjqe+++w5dunRBs2bNkJeXh8GDB+PGjRuwtrbGli1bNBEjERERkdJUTm4cHR1x/vx5bN26FfHx8SguLsaIESPwySefyA0wJiIiItIGlZObEydOoEOHDggJCUFISIisvLCwECdOnECnTp3UGmB10rhxY2RlZQEA9PS4sgUREZE2SIQQQpUG+vr6SEtLg62trVx5VlYWbG1tSxxsXJXk5OTA0tIS2dnZsLCw0HY4REREpARV7t8qdy8IISCRSBTKs7KyYGpqquruiIiIiNRK6cdSH374IYBXb0cNGzZMbt2koqIiXLx4ER06dFB/hEREREQqUDq5sbS0BPCq58bc3Fxu8LBUKkX79u0xatQo9UdIREREpAKlk5uoqCgAgKurK6ZMmcJHUCX44osvEBcXBwD4/fffUatWLS1HREREVPOo/LbU7NmzNRGHTrh06RJOnDgBAFV+YDUREZGuUjm5AYDt27dj27ZtSE5ORkFBgdx3586dU0tgRERERBWh8ttSS5cuRUhICGxtbZGQkIC2bduibt26uH37NgICAjQRIxEREZHSVE5uVqxYgVWrVmHZsmWQSqWYNm0aYmJiMGHCBGRnZ2siRiIiIiKlqZzcJCcny175NjExQW5uLgBgyJAhXFuKiIiItE7l5Mbe3l62xICLiwv+7//+DwCQlJQEFSc7JiIiIlI7lZObrl274tdffwUAjBgxApMnT0b37t0RFBSEfv36qT1AIiIiIlWo/LbUqlWrUFxcDAAIDQ2FlZUVYmNj0bt3b4SGhqo9QCIiIiJVqJzc6Onpya14PXDgQAwcOBAAcP/+fdSrV0990RER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aXj+/DkGDx6MevXq4fvvv6/yiY0mRUVFISwsDMCrmZcHDhyo5YiIiIhqpgrNczNq1CiMGjUKmZmZKC4uhq2trbrjIiIiIqqQt5rEz9raWl1xEBEREalFhQYUlzTJ3mu3b99+q4CIiIiI3obKyc2kSZPktl++fImEhAQcOHAAU6dOVVdcRERERBWicnIzceLEEsuXL1+OuLi4tw6IiIiI6G2obVXwgIAA7NixQ127IyIiIqoQtSU327dvh5WVlbp2R0RERFQhKj+WatOmjdyAYiEE0tPT8fDhQ7k1ooiIiIi0QeXkpm/fvnLbenp6sLGxwXvvvYemTZuqKy4iIiKiClEpuSksLISrqyv8/f1hb2+vqZiqpWHDhqFXr14AwGtDRESkRSolNwYGBhg9ejSuXr2qqXiqrTp16qBOnTraDoOIiKjGU3lAcbt27ZCQkKCJWIiIiIjemspjbsaMGYMvvvgC9+7dg5eXF0xNTeW+b9mypdqCIyIiIlKVRAghlKk4fPhwLFmyBLVr11bciUQCIQQkEgmKiorUHaNaqbJkuiouXLiA06dPAwC6d++ORo0aqW3fRERENZ0q92+le27Wr1+Pb775BklJSW8doC46cuQIwsLCAADR0dFMboiIiLRE6eTmdQePi4uLxoIhIiIielsqDSguazVwIiIioqpApQHF7u7u5SY4jx49equAiIiIiN6GSslNeHg4LC0tNRULERER0VtTKbkZNGgQbG1tNRULERER0VtTeswNx9sQERFRdaB0cqPkdDhEREREWqX0Y6ni4mJNxkFERESkFiovv0Als7S0hJubGwAoLElBRERElUfp5Rd0haaWXyAiIiLNUeX+rfKq4ERERERVGZMbIiIi0ilMboiIiEinMLlRk71796Jv377o27cvYmNjtR0OERFRjcW3pdTk1q1b2LNnDwBg8ODBWo6GiIio5mLPDREREekUJjdERESkU5jcEBERkU5hckNEREQ6hckNERER6RQmN0RERKRTmNwQERGRTmFyQ0RERDqFk/ipScuWLREaGgoAaNiwoZajISIiqrkkQgih7SAqkypLphMREVHVoMr9m4+liIiISKcwuSEiIiKdwuSGiIiIdAqTGzVZunQpTExMYGJigh07dmg7HCIiohqLb0upSVFREfLy8mT/JiIiIu1gzw0RERHpFCY3REREpFOY3BAR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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.9571841730237237"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict_pro_list, AUC = get_roc_auc(model,test_X,test_label_list)\n",
    "AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5bdee060",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "95c71eba",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "a998e05d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 统计详情\n",
    "evaluation_now = list(eval_model(test_label_list, predict_label_list, labelEncoder.classes_).iloc[1,[1,2,3]].values)\n",
    "evaluation_now.append(score_r)\n",
    "evaluation_now.append(AUC)\n",
    "\n",
    "evaluation_ls.append(evaluation_now)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "36e126ab",
   "metadata": {},
   "source": [
    "#### 2.7AdaBoost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "dff2fa3f",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import AdaBoostClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "28198380",
   "metadata": {},
   "outputs": [],
   "source": [
    "model = AdaBoostClassifier(algorithm = 'SAMME', random_state=0)\n",
    "\n",
    "model.fit(train_X,train_y) \n",
    "score_r = model.score(test_X,test_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "01ebce40",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Label</th>\n",
       "      <th>Precision</th>\n",
       "      <th>Recall</th>\n",
       "      <th>F1</th>\n",
       "      <th>Support</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.952294</td>\n",
       "      <td>0.821203</td>\n",
       "      <td>0.881903</td>\n",
       "      <td>632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0.525210</td>\n",
       "      <td>0.827815</td>\n",
       "      <td>0.642674</td>\n",
       "      <td>151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>总体</td>\n",
       "      <td>0.869931</td>\n",
       "      <td>0.822478</td>\n",
       "      <td>0.835768</td>\n",
       "      <td>783</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Label  Precision    Recall        F1  Support\n",
       "0     0   0.952294  0.821203  0.881903      632\n",
       "1     1   0.525210  0.827815  0.642674      151\n",
       "2    总体   0.869931  0.822478  0.835768      783"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_label_list = test_y\n",
    "predict_label_list = model.predict(test_X)\n",
    "eval_model(test_label_list, predict_label_list, labelEncoder.classes_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "e09197fa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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tWTJEmny9dChQ1nYEBERaVGxJhTnd5O9V+7evftWgQzB608+DwoKkjEJERGR/tG4uBk/frzKclZWFiIjI7F//35MmjRJW7n0Wm5urvQzR22IiIi0S+PiZty4cfm2L1myBOHh4W8dyBD06dNHuumgus/IIiIiIvW81YTi1929exf169cvdQ+mfFNpmFBMREREmtHk+7tYD87Mz9atW1GpUiVtbY6IiIioWDQ+J9KgQQOVCcVCCMTGxuLJkydYunSpVsPpm/j4eKxatQoAUKdOHXTo0EHmRERERPpH4+Kma9euKstGRkaws7PDBx98AB8fH23l0ktxcXH4z3/+AwAYMmQIixsiIiId0Ki4yc7OhoeHB/z9/eHo6KirTERERETFptGcGxMTE4waNUp6bAARERFRaaPxhOLGjRsjMjJSF1mIiIiI3prGc25Gjx6NL774Ag8fPoSvry+srKxU3q9bt67WwhERERFpSu3iZsiQIQgODkZAQAAAYOzYsdJ7CoUCQggoFArk5ORoPyURERGRmtQubtasWYN58+YhKipKl3mIiIiI3oraxc2rGxm7u7vrLAwRERHR29JoQnFhTwMnIiIiKg00mlDs7e1dZIHz9OnTtwqkz8zMzKQJ166urjKnISIi0k8aFTczZsyAjY2NrrLovapVq+LSpUtyxyAiItJrGhU3vXv3hr29va6yEBEREb01tYsbzrd5OzExMXj27BkAwMvLC+bm5jInIiIi0k9qTyh+dbUUFc+MGTPwzjvv4J133sGNGzfkjkNERKS31B65yc3N1WUOIiIiIq3Q+NlSpLnc3Fz8/PPPcscgIiIyCCxuSsDJkydVli0sLGRKQkREpP9Y3JSAxMREleXq1avLE4SIiMgAsLgpYXPmzOGVZ0RERDrE4qYEPHjwQO4IREREBoPFTQm4efOm3BGIiIgMBosbHcjOzsbNmzeRkJAAAPjwww+l93x9feWKRUREZBBY3GhZSkoKvLy8UKNGDSxfvhwAUK9ePSxfvhwnT55E27ZtZU5IRESk31jcaNnx48elOTZHjx4FALi7u2PkyJFo1qwZJxMTERHpGIsbLZs5c6b0c0pKioxJiIiIDBOLGy169OgRzp07Jy33799fxjRERESGicWNlqSnp8PPz0+lrXfv3jKlISIiMlwsbrRk586diI2NlZYvXbqEypUry5iIiIjIMLG40ZKYmBiV5Tp16siUhIiIyLCxuNGB0NBQXhVFREQkExO5A+iLunXrIjAwEABQtWpVmdMQEREZLoUQQsgdoiQlJyfDxsYGSUlJsLa2ljsOERERqUGT72+eliIiIiK9wuKGiIiI9AqLGyIiItIrLG60ZNGiRbCwsICFhQW2bdsmdxwiIiKDxaultCQnJwfp6enSz0RERCQPjtwQERGRXmFxQ0RERHqFxQ0RERHpFRY3REREpFdY3BAREZFeYXFDREREeoXFDREREekVFjdERESkV3gTPy3p3LkzPD09AQDvvvuuzGmIiIgMF4sbLalWrRqqVasmdwwiIiKDJ/tpqaVLl8LT0xPm5ubw9fXFiRMnClx3+/btaNu2Lezs7GBtbY0mTZrgwIEDJZiWiIiISjtZi5vQ0FCMHz8eU6dORWRkJJo3b44OHTogOjo63/WPHz+Otm3bYu/evYiIiECrVq3QuXNnREZGlnByIiIiKq0UQggh184bN26Mhg0bYtmyZVJbzZo10bVrV8ydO1etbbzzzjsICAjA119/rdb6ycnJsLGxQVJSEqytrYuVOz8PHz7EnTt3ALz8DPb29lrbNhERkaHT5PtbtpGbzMxMREREoF27dirt7dq1w+nTp9XaRm5uLlJSUlCpUiVdRNTIli1b8MEHH+CDDz7A0aNH5Y5DRERksGSbUBwfH4+cnBw4ODiotDs4OCA2NlatbSxYsACpqano1atXgetkZGQgIyNDWk5OTi5eYCIiIioTZJ9QrFAoVJaFEHna8rNx40ZMnz4doaGhhZ4Cmjt3LmxsbKSXm5vbW2cmIiKi0ku24sbW1hbGxsZ5Rmni4uLyjOa8KTQ0FEOHDsXmzZvRpk2bQtedMmUKkpKSpNeDBw/eOjsRERGVXrIVN0qlEr6+vggLC1NpDwsLQ9OmTQvst3HjRgwaNAgbNmxAp06dityPmZkZrK2tVV5ERESkv2S9iV9QUBD69+8PPz8/NGnSBL/88guio6MRGBgI4OWoy6NHj7B27VoALwubAQMG4Mcff8R7770njfpYWFjAxsZGts9BREREpYesxU1AQAASEhIwc+ZMxMTEoHbt2ti7dy/c3d0BADExMSr3vPn555+RnZ2NMWPGYMyYMVL7wIEDERISUtLxiYiIqBSS/fELo0ePxujRo/N9782ChZdYExERUVFkv1qKiIiISJtY3BAREZFekfXxC3LQ1eMXsrOzkZWVBQAwNTWFiYnsZ/yIiIj0hibf3/wG1hITExMWNERERKUAT0sRERGRXmFxQ0RERHqF51G05OTJk9i7dy8AoHfv3qhbt67MiYiIiAwTixstOX/+PObOnQsAqF+/PosbIiIimfC0FBEREekVFjdERESkV1jcEBERkV5hcUNERER6hcUNERER6RUWN0RERKRXWNwQERGRXmFxQ0RERHqFN/HTEhcXF7Ro0QIAYGdnJ3MaIiIiw6UQQgi5Q5QkTR6ZTkRERKWDJt/fPC1FREREeoXFDREREekVFjdERESkV1jcaMn69evh6+sLX19fhIWFyR2HiIjIYPFqKS2Ji4vDhQsXAADPnj2TOQ0REZHh4sgNERER6RUWN0RERKRXWNwQERGRXmFxQ0RERHqFxQ0RERHpFRY3REREpFdY3BAREZFeYXFDREREeoU38dOSZs2aYfbs2QCAOnXqyJyGiIjIcLG40ZJGjRqhUaNGcscgIiIyeDwtRURERHqFxQ0RERHpFZ6W0pK0tDSkpqYCAMqXLw8zMzOZExERERkmjtxoyfLly2FnZwc7Ozvs2rVL7jhEREQGi8UNERER6RUWN0RERKRXWNwQERGRXmFxQ0RERHqFxQ0RERHpFRY3REREpFdY3BAREZFeYXFDREREeoV3KCYi0iNCCGRnZyMnJ0fuKEQaMzU1hbGx8Vtvh8WNlvTp0wctWrQAAHh6esqchogMUWZmJmJiYvDixQu5oxAVi0KhgKurK8qVK/dW22FxoyUODg5wcHCQOwYRGajc3FxERUXB2NgYzs7OUCqVUCgUcsciUpsQAk+ePMHDhw9RvXr1txrBYXFDRKQHMjMzkZubCzc3N1haWsodh6hY7OzscO/ePWRlZb1VccMJxUREesTIiP9bp7JLW6ONHLnRkuvXr+PChQsAgPfffx/u7u4yJyIiIjJMLG60ZP/+/QgKCgIAhIaGsrghIiKSCccviYiIXnPkyBH4+PggNzdX7ih6p0ePHli4cKHO98PihoiIZDVo0CAoFAooFAqYmJigSpUqGDVqFJ49e5Zn3dOnT6Njx46oWLEizM3NUadOHSxYsCDf+/r8+eef6NixIypXrgxLS0vUqlULX3zxBR49elRonsmTJ2Pq1Kl6PX9p6dKl8PT0hLm5OXx9fXHixIki+yxZsgQ1a9aEhYUFatSogbVr1+ZZZ9u2bahVqxbMzMxQq1Yt7NixQ+X9r7/+GrNnz0ZycrLWPkt+9Pc3R0REZUb79u0RExODe/fuYcWKFdizZw9Gjx6tss6OHTvQsmVLuLq64s8//8Q///yDcePGYfbs2ejduzeEENK6P//8M9q0aQNHR0ds27YN165dw/Lly5GUlIQFCxYUmOP06dO4desWevbs+VafJzMz863661JoaCjGjx+PqVOnIjIyEs2bN0eHDh0QHR1dYJ9ly5ZhypQpmD59Oq5evYoZM2ZgzJgx2LNnj7TOmTNnEBAQgP79++PSpUvo378/evXqhb/++ktap27duvDw8MD69et1+hkhDExSUpIAIJKSkrS63YULFwoAAoAIDQ3V6raJiIqSlpYmrl27JtLS0uSOorGBAweKjz/+WKUtKChIVKpUSVp+/vy5qFy5sujevXue/rt37xYAxKZNm4QQQjx48EAolUoxfvz4fPf37NmzArN8/vnnokePHiptt2/fFl26dBH29vbCyspK+Pn5ibCwMJV13N3dxTfffCMGDhworK2txYABA4QQQpw6dUo0b95cmJubC1dXV/H555+L58+fS/3WrVsnfH19Rbly5YSDg4P49NNPxb///ltgPm1o1KiRCAwMVGnz8fERX375ZYF9mjRpIiZOnKjSNm7cONGsWTNpuVevXqJ9+/Yq6/j7+4vevXurtE2fPl00b9483/0U9u9Yk+9vjtwQEem5hQsXwtXVtchXly5d8vTt0qWLWn21OY/i7t272L9/P0xNTaW2gwcPIiEhARMnTsyzfufOneHt7Y2NGzcCALZs2YLMzExMnjw53+1XqFChwH0fP34cfn5+Km3Pnz9Hx44dcejQIURGRsLf3x+dO3fOM9Lx3XffoXbt2oiIiMBXX32Fv//+G/7+/ujevTsuX76M0NBQnDx5Ep999pnUJzMzE9988w0uXbqEnTt3IioqCoMGDSr0+AQGBqJcuXKFvgoahcnMzERERATatWun0t6uXTucPn26wH1mZGTA3Nxcpc3CwgLnzp1DVlYWgJcjN29u19/fP892GzVqhHPnziEjI6PQz/k2ZL9aaunSpfjuu+8QExODd955B8HBwWjevHmB6x87dgxBQUG4evUqnJ2dMXnyZAQGBpZgYiKisiU5ObnIeSYA4ObmlqftyZMnavV9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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.9021083074859587"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict_pro_list, AUC = get_roc_auc(model,test_X,test_label_list)\n",
    "AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "288cffc1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "efce9974",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "14c90a24",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 统计详情\n",
    "evaluation_now = list(eval_model(test_label_list, predict_label_list, labelEncoder.classes_).iloc[1,[1,2,3]].values)\n",
    "evaluation_now.append(score_r)\n",
    "evaluation_now.append(AUC)\n",
    "\n",
    "evaluation_ls.append(evaluation_now)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ca29ec0a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "23631737",
   "metadata": {},
   "outputs": [],
   "source": [
    "evaluation_data = pd.DataFrame(evaluation_ls)\n",
    "evaluation_data.columns = ['precision','recall','f1','accuracy','AUC']\n",
    "evaluation_data['模型'] = ['LogisticRegression','KNeighborsClassifier','GaussianNB'\n",
    "                         , 'RandomForestClassifier','SVM', 'GradientBoostingClassifier', 'AdaBoostClassifier']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "66fb237c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>precision</th>\n",
       "      <th>recall</th>\n",
       "      <th>f1</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>模型</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.530806</td>\n",
       "      <td>0.741722</td>\n",
       "      <td>0.618785</td>\n",
       "      <td>0.823755</td>\n",
       "      <td>0.857448</td>\n",
       "      <td>LogisticRegression</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.552764</td>\n",
       "      <td>0.728477</td>\n",
       "      <td>0.628571</td>\n",
       "      <td>0.833972</td>\n",
       "      <td>0.858213</td>\n",
       "      <td>KNeighborsClassifier</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.783739</td>\n",
       "      <td>0.787995</td>\n",
       "      <td>0.785777</td>\n",
       "      <td>0.833972</td>\n",
       "      <td>0.769333</td>\n",
       "      <td>GaussianNB</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.889893</td>\n",
       "      <td>0.892720</td>\n",
       "      <td>0.891005</td>\n",
       "      <td>0.892720</td>\n",
       "      <td>0.919849</td>\n",
       "      <td>RandomForestClassifier</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.541667</td>\n",
       "      <td>0.516556</td>\n",
       "      <td>0.528814</td>\n",
       "      <td>0.822478</td>\n",
       "      <td>0.832132</td>\n",
       "      <td>SVM</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.883212</td>\n",
       "      <td>0.801325</td>\n",
       "      <td>0.840278</td>\n",
       "      <td>0.941252</td>\n",
       "      <td>0.957184</td>\n",
       "      <td>GradientBoostingClassifier</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.525210</td>\n",
       "      <td>0.827815</td>\n",
       "      <td>0.642674</td>\n",
       "      <td>0.822478</td>\n",
       "      <td>0.902108</td>\n",
       "      <td>AdaBoostClassifier</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   precision    recall        f1  accuracy       AUC  \\\n",
       "0   0.530806  0.741722  0.618785  0.823755  0.857448   \n",
       "1   0.552764  0.728477  0.628571  0.833972  0.858213   \n",
       "2   0.783739  0.787995  0.785777  0.833972  0.769333   \n",
       "3   0.889893  0.892720  0.891005  0.892720  0.919849   \n",
       "4   0.541667  0.516556  0.528814  0.822478  0.832132   \n",
       "5   0.883212  0.801325  0.840278  0.941252  0.957184   \n",
       "6   0.525210  0.827815  0.642674  0.822478  0.902108   \n",
       "\n",
       "                           模型  \n",
       "0          LogisticRegression  \n",
       "1        KNeighborsClassifier  \n",
       "2                  GaussianNB  \n",
       "3      RandomForestClassifier  \n",
       "4                         SVM  \n",
       "5  GradientBoostingClassifier  \n",
       "6          AdaBoostClassifier  "
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "evaluation_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "08a3884a",
   "metadata": {},
   "outputs": [],
   "source": [
    "evaluation_data.to_excel(r'去掉x6-x13建模结果.xlsx',index = False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "35f9c388",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "32a0b55d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9310009b",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "85131e75",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
